サーバに公開鍵、クライアントに秘密鍵を配置する。
設定後は秘密鍵を持っているクライアントPCからでしか、サーバにログインできなくなる。
外出先で設定を弄るときは、秘密鍵を外部記憶メモリやオンラインストレージに保管しておくなど、嵌らないように注意。
公開鍵・秘密鍵はペアで作成する必要がある。サーバでもクライアントでも作成できるが、本記事ではクライアント(tera term)での作成方法を解説する。
Tera Termで公開鍵、秘密鍵を生成
①管理者ユーザでログイン
②TeraTermのメニューバーより、「設定」⇒「SSH鍵作成」を選択。
③鍵の種類を「RSA」、ビット数を「2048」にして「生成」。
鍵のパスフレーズを入力。なお、パスフレーズは入れなくても生成できる。
入力した場合は、後でログインする時に聞かれることになる。
④上記画面より、「公開鍵の保存」「秘密鍵の保存」で任意の場所に鍵を保存。
⑦「閉じる」をクリックして抜ける。
公開鍵をサーバにアップロード。サーバの設定
①公開鍵(id_rsa.pub)をtera termにドラッグ&ドロップし、scp転送でアップロード。
(tera termの標準機能で、winscpなど使わなくてOK)
②正常にアップロードされたことを確認する。
ls -al
③公開鍵をサーバへ登録する。
cd
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm -f id_rsa.pub
ユーザのホームディレクトリに移動し、公開鍵(id_rsa.pub)の中身を、.ssh配下のauthorized_keysに書き込む。
書き込みが終われば、アップロードした公開鍵は削除し、authorized_keysの権限を変更。
④sshd_configの編集をする。
rootに切替わり、sshd_configの編集。
su –
vi /etc/ssh/sshd_config
以下個所を変更する。
コメント解除。公開鍵認証を許可。
#PubkeyAuthentication yes
↓
PubkeyAuthentication yes
コメント解除。公開鍵の場所設定。
#AuthorizedKeysFile .ssh/authorized_keys
↓
AuthorizedKeysFile .ssh/authorized_keys
コメント解除しnoに書き換え。パスワード認証(ログイン)の禁止。
#PasswordAuthentication yes
↓
PasswordAuthentication no
チャレンジレスポンス認証を許可していないことを確認。
ChallengeResponseAuthentication no
⑤sshdデーモンをリロードして、設定ファイルの変更を反映。
/etc/rc.d/init.d/sshd reload
公開鍵認証でログイン
①TeraTermを別ウィンドウで起動する。
※上記sshdリロード後にログアウトしてすまうと、公開鍵生成に失敗していた場合、
再インストールする必要がでてくる。公開鍵認証でのログイン確認までは絶対にログアウトしないこと。
②「RSA/DSA鍵を使う」にチェックをつけて、任意の場所に保存した秘密鍵「id_rsa」を選択。
③「パスフレーズ」に、公開鍵・秘密鍵生成時に入力したパスワードを入力。
※パスワードを空欄で公開鍵・秘密鍵を生成した場合は、パスフレーズは空欄でよい。
ユーザのパスワードではなく、鍵生成時のパスフレーズであることに注意。
④OKをクリックし、ログインできたことを確認。