Você ainda receberá um prompt de senha para descriptografar a chave privada, mesmo que ela seja carregadassh-agent
até que a chave pública SSH correspondente seja adicionada ao controle remoto ~/.ssh/authorized_keys
.
Reproduzir:
# 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`.
Confuso o suficiente. A senha de login SSH remota seria suficiente nesse caso.
Posso especular que isso evite adicionar sua chave pública (que está emparelhada com a chave privada criptografada) sem saber a senha de criptografia da chave privada correspondente. É um procedimento de login único por controle remoto de qualquer maneira.