家庭内サーバーで余っているノートパソコンをサーバーに充てようとしているので、別にノートパソコンでrootログインしてメンテしてもいいのですが、なるべくそれらしいごっこ遊びを目指していてるので、リモートログインでサーバーメンテをできるようにします。リモートログインはSSH(Secured Shell)で行います。
インストールするサービスを選択する時にsshdを選択しているので、sshdが有効になっているはずですが、念のためコマンドプロンプトで、
# ee /etc/rc.conf[ENTER]
sshd_enable="YES"
デフォルトではどこからのアクセスも受け付けるので家庭内ネットワークに限定します。各種サービスの利用許可を設定するhosts.allowに受け付けるIPアドレスを設定します。コマンドプロンプトで、
# ee /etc/hosts.allow[ENTER]
と打って/etc/hosts.allowを開きます。
ALL : ALL : allow
をコメントアウトするか削除します。コメントアウトする場合はこんな感じです。
# ALL : ALL : allow
#sshd : All : allow
sshd : 192.168.10.0/255.255.255.0 : allow
家庭内サーバーですから、簡便に使える設定にします。rootユーザーからパスワードを使ってログインできるようにします。コマンドプロンプトで、
# ee /etc/ssh/sshd_config[ENTER]
と打って、sshd_configを開きます。
#PermitRootLogin no
PermitRootLogin yes
#PasswordAuthentication no
PasswordAuthentication yes
他の設定はPermitEmptyPasswordsも含めてデフォルトのままにします。
Windows10がバージョン1803からSSHに対応しましたので、これを前提にいきます。
立ち上げて、以下のコマンドを打ちます。
> ssh root@192.168.10.2[ENTER]
パスワードを入力したら、サーバーにログインできます。
ログインについては、公開鍵による認証を推奨しているようで、そのパターンもおさらいしておきます。説明のため、SSHを使用するユーザーはmasaoとします。
コマンドプロンプトで、
# ee /etc/ssh/sshd_config[ENTER]
と打って、sshd_configを開きます。
AllowUsers masao
#Port 22
Port 10101
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
他の設定はデフォルトのままです(デフォルトから変更したところはデフォルトに戻してください)。
この作業は、ログインユーザーであるmasaoでログインして行います。まず、masaoのホームディレクトリにsshのディレクトリを作成し、アクセス権限を設定します。サーバーで以下のコマンドを実行します。
% mkdir -p /home/masao/.ssh[ENTER]
% chmod 0700 /home/masao/.ssh[ENTER]
認証鍵を作成します。サーバーで以下のコマンドを実行します。
% ssh-keygen -t rsa[ENTER]
これで、/home/masao/.sshフォルダにid_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成されています。また、この作成中にパスフレーズの入力を求められますが、これも記録しておきます。
% ls -al /home/masao/.ssh[ENTER]
と打って、.sshディレクトリにauthorized_keysファイル(orディレクトリ)がないことを確認します。
% cp /home/masao/.ssh/id_rsa.pub /home/masao/.ssh/authorized_keys[ENTER]
と打って、公開鍵をauthorized_keysファイルにコピーします。authorized_keysファイルがある場合は、
% cat /home/masao/.ssh/id_rsa.pub >> /home/masao/.ssh/authorized_keys[ENTER]
として、id_rsa.pubの内容をauthorized_keysファイルに追記します。最後にauthorized_keysのアクセス権限を設定します。サーバーで以下のコマンドを打ちます。
% chmod 0600 /home/masao/.ssh/authorized_keys[ENTER]
先に作った秘密鍵id_rsaファイルをクライアントにコピーします。コマンドプロンプトでフルパスを入力しますので、手間を省くために浅い階層にしましょう(WindowsならC\:ssh、FreeBSDなら/home/masao/.sshか)。
Windows10がバージョン1803からSSHに対応しましたので、これを前提にいきます。
立ち上げて、以下のコマンドを打ちます。
> ssh -p 10101 -i (秘密鍵のあるディレクトリ)id_rsa masao@192.168.10.2[ENTER]
パスフレーズを入力したら、サーバーにログインできます。
なお、このページを書くに当たって、以下の記事を参考にしました。
(2018年 7月28日 記)