Server

11. SSHユーザーの追加

 この章では、Oralce Linux 8でのSSHやSFTPのユーザーの追加について述べます。

 まずは、サーバーマシンでの操作です。Tera Termを使うか、マシン本体の前に行って、oluserでログインします。

 SSH用のゲストグループを作成します。管理がしやすいように、一つの専用のグループにまとめることにしました。

sudo groupadd guest

 後述する理由により、システム管理者権限のあるoluserは、LAN内部でのみ使用するメンテナンス用としてだけ、利用します。

 次に、SSH用ログインユーザーを作成してguestグループに所属させ、パスワードを設定します。この例ではhogehogeというユーザー名にしていますが、適当なものに置き換えて読んでください。

sudo useradd -g guest hogehoge
sudo passwd hogehoge

 この時のパスワードは、8文字以上で推測されにくいものにしてください。最終的には、暗号化通信を採用して、外部インターネットからメールのやり取りができるようにします。その時のメールアドレスのパスワードとしても使われますので、セキュリティのためにも、安易なパスワードは設定しないでください。

 設定ファイルsshd_configを編集します。

sudo vim /etc/ssh/sshd_config

 最終行のAllowUsersを以下のように変更し、hogehogeユーザーのログインを許可します。ユーザー名の後ろの@以下の意味は、SSHサーバーの設定の章を参照してください。この例ですと、hogehogeユーザーは、外部インターネットの22.34から始まるアドレスでは接続を許可します。

AllowUsers oluser@192.168.0.0/24 hogehoge@192.168.0.0/24 hogehoge@22.34.0.0/16

 保存してvimを終了してください。

 SSHサーバーを再起動します。

sudo systemctl restart sshd

 次はWindowsマシンにもどり、hogehogeユーザー用の鍵を作ります。鍵を作る手順はoluserとほぼ同じです。詳しくは、SSHクライアントの設定の章を参考にしてください。ただ、鍵の保存場所は分けた方がいいでしょう。identityとauthorized_keysという、同じ名前にリネームするためです。

 WinSCPを起動し、oluserでログインします。今回作成した、hogehogeユーザー用の公開鍵(authorized_keysファイル)を、サーバーにアップロードします。ファイルのアップロード先は、接続時のデフォルトである、oluserのホームディレクトリ(/home/oluser)にします。

 次は、またサーバー側での作業になります。ここは、先ほど設定したTera Termを使って、Windowsマシンから、そのまま設定してしまいましょう。ログイン状態で、oluserのホームディレクトリにいるので、そのまま作業を開始します。

 まず、hogehogeユーザーのホームディレクトリ下に、公開鍵の置き場所である、.sshディレクトリを作成します。そのままの権限では、他人のホームディレクトリを勝手に操作できないので、sudoコマンドを使います。

sudo mkdir ~hogehoge/.ssh

 次に、先ほど送ったauthorized_keysを、今作ったディレクトリに移動します。

sudo mv ./authorized_keys ~hogehoge/.ssh/

 ちなみに、これらのコマンドは、Tera Termであればコピペできます。右クリックすれば、張り付けられます。Tera Termの内容をコピーするときは、左クリックで範囲指定するだけです。このとき、Windows標準の操作と勘違いして、範囲指定したあとに、右クリックしてメニューを開こうとすると、張り付けてしまうので、注意してください。左クリックで範囲指定するだけで、コピーできています。

 このままでは、所有者がrootのままなので、変更します。繰り返しになりますが、.sshディレクトリとauthorized_keysのパーミッションもきちんと設定してください。でないと、接続時にエラーになります。

sudo chown -R hogehoge:guest ~hogehoge/.ssh
sudo chmod 700 ~hogehoge/.ssh
sudo chmod 400 ~hogehoge/.ssh/authorized_keys

 これでサーバー側の準備は終わりです。Tera Termを使ってhogehogeユーザーで接続する手順や、WinSCPで接続する手順も、oluserと同じです。ただ、秘密鍵(identityファイル)をhogehogeユーザーのものを指定し、パスフレーズも、hogehogeユーザーのものにするだけです。

 次に、SSHで外部インターネットから接続するための手順を説明します。私は甥っ子の勉強環境のためにこの設定をしていますが、本来であれば、この設定は避けるべきです。暗号化通信しているとはいっても、インターネット上から、サーバーを直接操作できる手段を用意することは、セキュリティリスクをはらみます。

 ですので、おすすめはしませんが、こういうこともできるよという、例としてみてください。また、前にも書きましたが、この設定は各家庭のルーターによって異なります。参考程度にしてください。


 ブラウザのURLに、192.168.0.254(ルーターのアドレス)を入れて、管理画面を開きます。"ゲーム&アプリ"ボタンを押します。グループのところは、新規追加で”Group01”を作成することにします。

 "プロトコル"のところの、"TCP/UDP"のところにSSHサーバーで設定した”10022"を入力します。"LAN側IPアドレス"のところに、192.168.0.2を入力します。

SSH用ルーター設定

 "新規追加"ボタンを押して、変更を保存します。

 なお、oluserでのSSHでのリモートログインは、LAN内部からのみに限定してください。sudoコマンドが実行可能なシステム管理者権限のあるユーザーで、外部インターネットから操作するのは、非常に危険です。

 また、秘密鍵や公開鍵の管理には気を付けてください。特にシステム管理者の鍵は、LANの外には絶対出さないように徹底してください。