デフォルト以外のキーを提供するときにSSHがパスワードを求めるメッセージを表示する

デフォルト以外のキーを提供するときにSSHがパスワードを求めるメッセージを表示する

SSH公開鍵認証について質問があります。次のように、RHEL 9システムでキーペア(パスワードで保護されています)を作成しました。

ssh-keygen -f .ssh/key2

その後、公開鍵をリモートホストにコピーします。

ssh-copy-id -i .ssh/key2.pub operator1@servera

今すぐ接続しようとすると、キーパスワードの入力を求められます。

ssh -i .ssh/key2 operator1@servera

実行中に-vオプションを追加すると、サーバーがキーを受け入れたことを示します。

No Kerberos credentials available (default cache: KCM:)
debug1: No credentials were supplied, or the credentials were unavailable or inaccessible
No Kerberos credentials available (default cache: KCM:)
debug1: Next authentication method: publickey
debug1: Offering public key: .ssh/key2 RSA SHA256:wzFYOSGEvzLSjgKe5EGlKXXuaWmFmG8E6gfxs2KG6Pg explicit
debug1: Server accepts key: .ssh/key2 RSA SHA256:wzFYOSGEvzLSjgKe5EGlKXXuaWmFmG8E6gfxs2KG6Pg explicit

それではなぜパスワードを尋ねますか?注:.sshフォルダに権限を付与しました。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/key2

答え1

SSHパスワードで保護されたキー。キーを直接使用したりSSHエージェントにロードしたりするときは、キーの生成に使用したパスワードを指定してロックを解除する必要がsshあります。

パスワードを使用するときにパスワードを指定したくない場合は、ssh次のコマンドを使用してすでに実行されているSSHエージェントにパスワードをロードしてください。

ssh-add ~/.ssh/key2

これにより、キーのパスワードの入力を求められます。一度を使用すると、sshインタラクティブにパスワードを再入力することなく、エージェントが終了するかエージェントからキーが削除されるまで、適切なリモートホストに接続できます。

コメントでは、公開鍵がリモートシステムにコピーされたため、SSH鍵にパスワードを提供する必要はないと思います。必要に応じて(sshプロキシなしで接続する場合、またはキーをプロキシにロードする場合)、キーのパスワードを入力する必要があります。鍵がパスワードで保護されているかどうかにかかわらず、SSH鍵認証を使用する前に、公開鍵をリモートシステムに配置する必要があります。

関連情報