ssh-agent
対応するSSH公開キーがリモートに追加されるまで、秘密キーが読み込まれた場合でも、パスワードプロンプトが表示され~/.ssh/authorized_keys
ます。
再現するには:
# We are about to ssh to localhost, therefore, unauthorized everyone.
$ rm ~/.ssh/authorized_keys
$ eval $(ssh-agent)
# Agent pid 9290
$ ssh-add
# Enter passphrase for /home/uvsmtid/.ssh/id_rsa:
# Identity added: /home/uvsmtid/.ssh/id_rsa (/home/uvsmtid/.ssh/id_rsa)
$ ssh localhost
# Enter passphrase for key '/home/uvsmtid/.ssh/id_rsa':
# uvsmtid@localhost's password:
# NOTE: See password prompt for private key
# (and only then prompt for remote login).
# Why? Isn't the private key is already loaded by `ssh-add`?
$ ssh-copy-id localhost
$ ssh localhost
# NOTE: No password for private key anymore.
# The key is served by `ssh-agent`.
紛らわしい。この場合、リモートSSHログインパスワードで十分です。
これにより、対応する秘密キーの暗号化パスワードがわからなくても、公開キー(暗号化された秘密キーとペアになっている)を追加できないと推測できます。とにかく、リモートログインごとに1回の手順です。