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鍵認証を使用する前に、公開鍵をリモートシステムに配置する必要があります。