基本
SSH サーバーには、それに接続するクライアントを認証する複数の方法があります。最も一般的な方法は、最も簡単なパスワード ベースの認証ですが、安全性は高くありません。パスワードは安全なメカニズムで交換されますが、使いやすいため、一般的に複雑でも長くもありません。これにより、攻撃者は総当たり攻撃または辞書攻撃を使用してパスワードを破ることができます。このようなシナリオでは、SSH キーは安全で信頼できる認証手段をクライアントに提供できます。
SSH サーバーは、公開鍵暗号方式を使用してユーザーを認証します。この方式では、認証のために公開鍵と秘密鍵のペアの鍵が生成されます。名前が示すように、秘密鍵はクライアントによって秘密にされます。これは、秘密鍵が侵害されると、追加の認証なしで誰かがサーバーにログインする可能性があるためです。
クライアントの秘密の秘密鍵に対応する公開鍵は秘密として保持されず、ユーザーがログインするシステムにコピーされます。秘密鍵は、関連付けられたクライアントの公開鍵を使用して暗号化されたメッセージを復号化するために使用されます。キー ペアを使用して、パスワードなしの認証を有効にすることもできます。クライアントの信頼できる公開鍵は、ユーザー アカウントのホーム ディレクトリにある、authorized_keys という名前の特別なファイルに保存されます。
クライアントがキーを使用して SSH サーバーを認証しようとすると、サーバーに格納されているクライアントの公開キーを使用してチャレンジが発行されます。クライアントの秘密鍵を使用してチャレンジを正常に復号化すると、ユーザーはサーバーのシェルにアクセスできるようになります。
ssh の公開鍵のみの認証を構成する
1. root として、sshd デーモン構成ファイル (/etc/ssh/sshd_config )。
2. PermitRootLogin および PubkeyAuthentication パラメーターを次の値に変更します。
PermitRootLogin without-password PubkeyAuthentication yes
ディレクティブ PermitRootLogin の値を without-password に設定して、ルート アカウントでキーベースの ssh ログインのみを許可します。 上記のとおりです。
3. sshd デーモンを再起動する前に、構成ファイル sshd_config の構文が正しいことを確認してください。
# sshd -t
上記のコマンドは何も返さないはずです。これは、構成ファイルが構文的に正しく、問題なく sshd デーモンを再起動できることを意味します。
4. sshd デーモンを再起動します。
# service sshd restart
または
# systemctl restart sshd