1.3. OpenSSH サーバーで鍵ベースの認証を唯一の方法として設定する
システムのセキュリティーを強化するには、OpenSSH サーバーでパスワード認証を無効にして鍵ベースの認証を有効にします。
鍵認証が正しく機能することを確認せずにパスワード認証を無効にすると、サーバーにアクセスできなくなる可能性があります。この設定を適用する前に、SSH キー認証を徹底的にテストしてください。また、テスト中は現在のセッションを開いたままにしておき、必要に応じて変更を元に戻せるようにしてください。
前提条件
-
openssh-serverパッケージがインストールされている。 -
サーバーで
sshdデーモンが実行されている。 鍵を使用して OpenSSH サーバーに接続できる。
詳細は、SSH 鍵ペアの生成 セクションを参照してください。
手順
テキストエディターで
/etc/ssh/sshd_config設定を開きます。以下に例を示します。# vi /etc/ssh/sshd_configPasswordAuthenticationオプションをnoに変更します。PasswordAuthentication no-
新しいデフォルトインストール以外のシステムでは、
PubkeyAuthenticationパラメーターが設定されていないか、yesに設定されていることを確認します。 KbdInteractiveAuthenticationディレクティブをnoに設定します。設定ファイル内の該当するエントリーはコメントアウトされており、デフォルト値は
yesとなっています。NFS がマウントされたホームディレクトリーで鍵ベースの認証を使用するには、SELinux ブール値
use_nfs_home_dirsを有効にします。# setsebool -P use_nfs_home_dirs 1sshdデーモンをリロードし、変更を適用します。# systemctl reload sshd- リモート接続している場合は、現在のセッションを開いたまま、別のターミナルで新しい SSH セッションを開いて設定をテストします。新しい接続が失敗した場合は、既存のセッションで行った変更を元に戻すことができます。
検証
パスワード認証が無効になっていることを確認します。
# sshd -T | grep -i passwordauthentication passwordauthentication noキーボード対話型認証が無効になっていることを確認します。
# sshd -T | grep -i kbdinteractiveauthentication kbdinteractiveauthentication no別のシステムから、パスワード認証を使用して接続を試み、接続が拒否されていることを確認します。
$ ssh -o PreferredAuthentications=password <username>@<server> <username>@<server>: Permission denied (publickey).公開鍵認証のみが許可されているため、接続は拒否されました。