デフォルトでは、ユーザー名とパスワードで、ssh ログインできる状態です。 少しでもセキュリティを強化するために、認証キー必須の方式に変更します。
$ ssh-keygen -t rsa -b 4096 -C [メールアドレスなどのコメント] ※ .ssh 配下に、id_rsa, id_rsa.pub が生成されます。
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
chmod 700 .ssh chmod 600 .ssh/*
$ mv .ssh/id_rsa . $ chmod 644 id_rsa
+-------------------------------------------+ +-------------------------------------------+ | From: [ ] [ Send ] | | To: [ ] [Cancel] | | ----------------------------------------- | | From: [id_rsa ] [Receive] | | To: [<任意のディレクトリ> ] | +-------------------------------------------+
$ rm id_rsa※本来は、秘密鍵(id_rsa)をネットワーク上に流さないようにするため、接続元PC上で公開鍵(id_rsa),秘密鍵(id_rsa.pub)を作成し、id_rsa.pub を接続先の .ssh/authorized_keys に追加します。
/etc/ssh/sshd_config ファイルの設定変更ポイントを以下に記します。
# 変更しておくと、気休め程度であるがセキュリティUP # 変更した場合、クライアント側はポート番号を明示的に指定する必要があります。 Port [任意のポート番号]
# no を指定して、root ログインを拒否します。 # ※きちんと一般ユーザーでログインが可能であること、 # su または、sudo コマンドでルート権限での操作が可能であること # を確認した上で設定してください。 # # 以下のオプションも指定可能であるが、基本的に no を設定しましょう。 # without-password : パスワード認証の場合だけ拒否 # forced-commands-only : 公開鍵認証でパスフレーズが設定されている場合のみ許可 PermitRootLogin no
# パスワードのみによる認証を無効化する。 PasswordAuthentication no
# チャレンジレスポンス認証を無効にする。 # PasswordAuthentication だけを no にしても、チャレンジレスポンス形式の # パスワードによる認証機能が無効化されないため、 # パスワードのみによる認証を無効化したい場合、本設定も no にする。 ChallengeResponseAuthentication no
その他設定(必要に応じて実施)