SSH接続にパスワード認証方式を用いるのはブルースフォースアタックでパスワードが割りだされるリスクがあり望ましくありません。そこでSSHに公開鍵認証の設定を行いパスワード認証は止めることにします。認証で使用する公開鍵と秘密鍵はTeraTermで作成した鍵ペアを使用することにします。
1.鍵ペアの生成
TeraTermを起動し、メニューの「設定」⇒「SSH鍵生成」を選択します。
デフォルトのまま「生成」を押下します。パスフレーズを適当に設定し「公開鍵の保存」と「秘密鍵の保存」を押下しそれぞれ鍵を保存します。
ここでは秘密鍵を「id_rsa.key」で、公開鍵を「id_rsa.pub」で保存します。
2.公開鍵セットアップ
鍵ペアのうち、公開鍵をサーバにセットアップします。まずディレクトリを作成しアクセス権を設定します。秘密鍵は端末に保管し接続時に使用します。
1 2 |
# mkdir ~/.ssh # chmod 700 ~/.ssh |
TeraTermでログインした状態であれば「id_rsa.pub」をドラッグしてSCPでファイル転送ができます。コピー先ディレクトリに「~/.ssh」を選択してください。
公開鍵のファイル名とファイルアクセス権を変更します。
1 2 |
# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys # chmod 600 ~/.ssh/authorized_keys |
3.設定ファイルの変更
/etc/ssh/sshd_configを修正し公開鍵認証を有効にします。
1 2 3 4 5 6 7 |
Protocol 2 # ← SSH2でのみ接続を許可 # 48行目を変更 PermitRootLogin without-password # ← rootでのパスワード認証を禁止 PermitEmptyPasswords no # ← 空のパスワードは禁止 PasswordAuthentication no # ← パスワード認証は禁止 PubkeyAuthentication yes # ← 公開鍵認証を設定 AuthorizedKeysFile .ssh/authorized_keys # ←公開鍵のパスを設定 |
4.SSHの再起動と確認
1 |
# systemctl restart sshd |
これで公開鍵認証方式でSSH接続ができるようになります。
但し、慌ててセッションを切断しないでください。公開鍵認証で本当に接続できるか試してからセッションを切断するようにしましょう。失敗するとSSHで接続できなくなってしまいますので。別のセッションを立ち上げて公開鍵認証方式で接続できるか試します。
TeraTermを起動し接続先ホストとポートを指定して「OK」を選択。下記SSH認証画面が表示されますので、先ほど設定したユーザーとパスフレーズを指定し「RSA/DSA/ECDSA/ED25519鍵を使う」を選択したら、作成した秘密鍵「id_rsa.key」を指定して接続します。
うまく接続できることを確認したら既存のセッションを切断しても大丈夫です。接続できない場合は「/etc/ssh/sshd_config」など上記設定を見直してみてください。