
Primero generé claves en el cliente (Ubuntu 18.04)
$ ssh-keygen -t rsa -f .ssh/id_rsa
luego lo copié al servidor (Ubuntu Server 18.04)
$ ssh-copy-id 192.168.1.58
Ahora puedo ver la clave en .ssh/authirized_keys
el servidor y puedo iniciar sesión sin contraseña.
Luego generé nuevas claves en el cliente y se sobrescribieron las claves anteriores. Pero todavía puedo iniciar sesión en el servidor sin contraseña. Esperaba que, dado que se cambiaron las claves, el servidor no me verificara. ¿Qué me estoy perdiendo?
Editar:
Incluso quité las llaves
$ rm .ssh/id*
$ ls .ssh/
known_hosts
todavía puedo iniciar sesión
$ ssh 192.168.1.58
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Mon Mar 23 08:51:34 UTC 2020
System load: 0.0 Processes: 106
Usage of /: 42.8% of 12.31GB Users logged in: 1
Memory usage: 6% IP address for enp0s3: 192.168.1.58
Swap usage: 0% IP address for docker0: 172.17.0.1
0 packages can be updated.
0 updates are security updates.
Last login: Mon Mar 23 08:46:19 2020 from 192.168.1.59
$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1[...]nr6eR33QK1BYeNT0BjyhRztd me@ubnutu-vm
$ w
08:53:57 up 2:10, 2 users, load average: 0.06, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
me tty1 - 07:12 21.00s 0.35s 0.32s -bash
me pts/0 192.168.1.59 08:51 1.00s 0.06s 0.00s w
Edición 2:
Esto es de ssh -v
:
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:Db+pAR0Bc2kmZ9jju9zttSZDwfbEl4TM82AV7KSZ3DM /home/me/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.1.58 ([192.168.1.58]:22).
...
Aunque no hay ningún id_rsa
archivo en /home/me/.ssh/
la carpeta. Entonces pensé que tal vez había algún tipo de caché involucrado y después de reiniciar el cliente ahora tengo que ingresar la contraseña.
Esto es ssh -v
después de reiniciar:
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/me/.ssh/id_rsa
debug1: Trying private key: /home/me/.ssh/id_dsa
debug1: Trying private key: /home/me/.ssh/id_ecdsa
debug1: Trying private key: /home/me/.ssh/id_ed25519
debug1: Next authentication method: password
[email protected]'s password:
Entonces era necesario reiniciar.
Respuesta1
Siguiente@fra-sanEl consejo de Profundicé un poco más y esto es lo que obtuve:
Esto es dehttps://www.ssh.com/ssh/agent
De forma predeterminada, el agente utiliza claves SSH almacenadas en el directorio .ssh en el directorio de inicio del usuario. El comando ssh-add se utiliza para agregar identidades al agente. En la forma más simple, simplemente ejecute if sin argumentos para agregar los archivos predeterminados ~/.ssh/id_rsa, .ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 y ~/.ssh/identity. De lo contrario, asígnele el nombre del archivo de clave privada para agregarlo como argumento.
El siguiente comando enumerará las claves privadas actualmente accesibles para el agente:
ssh-add -l
Después de conectarse al servidor, ssh-add -l
muestra esto:
$ ssh-add -l
2048 SHA256:rzgw39XLAT0NHof4RBXFU/ahKhFWlH8FqMgNxBX2SAE /home/me/.ssh/id_rsa (RSA)
Si las id_*
claves en la .ssh/
carpeta cambian o se eliminan, ssh-add -l
todavía muestra el mismo resultado y se usará para conexiones futuras (al menos en mi caso).
En ese momento, un reinicio o uno de los siguientes comandos eliminará la clave almacenada en caché:
$ ssh-add -d /home/me/.ssh/id_rsa
Identity removed: /home/me/.ssh/id_rsa (me@ubnutu-vm)
o
$ ssh-add -D
All identities removed.
Ahora se mostrará la solicitud de contraseña para nuevas conexiones.
Actualizar:
Esto es dehttps://man.openbsd.org/ssh_config.5#AddKeysToAgent:
Agregar claves al agente
Especifica si las claves deben agregarse automáticamente a un ssh-agent(1) en ejecución. Si esta opción está configurada en sí y se carga una clave desde un archivo, la clave y su frase de contraseña se agregan al agente con la duración predeterminada, como si fuera mediante ssh-add(1). Si esta opción está configurada para preguntar, ssh(1) requerirá confirmación usando el programa SSH_ASKPASS antes de agregar una clave (consulte ssh-add(1) para obtener más detalles). Si esta opción está configurada para confirmar, se debe confirmar cada uso de la clave, como si la opción -c se hubiera especificado en ssh-add(1). Si esta opción se establece en no, no se agregan claves al agente. El argumento debe serSí,confirmar,preguntar, oNo(el valor por defecto).