Todavía recibirá un mensaje de contraseña para descifrar la clave privada, incluso si se cargassh-agent
hasta que la clave pública SSH correspondiente se agregue al control remoto ~/.ssh/authorized_keys
.
Reproducir:
# 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`.
Lo suficientemente confuso. La contraseña de inicio de sesión SSH remota sería suficiente en este caso.
Puedo especular que esto evita agregar su clave pública (que se combina con la clave privada cifrada) sin conocer la contraseña de cifrado para la clave privada correspondiente. De todos modos, es un procedimiento de inicio de sesión único por remoto.