Hace poco tiempo noté que había tres claves en mi agente ssh que no podía eliminar. ssh-add -l
mostró tres llaves; Corrí ssh-add -D
y me dijeron "Todas las identidades eliminadas"; pero luego un inmediato ssh-add -l
mostró las mismas tres llaves.
Si me desconecto y luego vuelvo a ingresar, las llaves siguen ahí. Si reinicio la máquina, las teclas siguen ahí. Si elimino el directorio de llavero /tmp
, no puedo conectarme ssh-agent
más, pero al cerrar la sesión y volver a iniciarla, las claves vuelven. Son invulnerables.
Las llaves son mías, no de nadie más, por lo que puedo decir. Puedo acceder a mis servicios locales habituales con ellos. Pero cuando agrego nuevamente una de las claves con ssh-add
, dando la ruta a un archivo de clave privada, la nueva clave tiene una apariencia diferente en la salida de ssh-add -l
:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f /home/jruser/.ssh/jruser-keyname-20110418 (RSA)
vs. el original:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)
¿Hay alguna forma de explicar con sensatez este comportamiento? Creo que realmente hay dos preguntas:
¿Cómo lograron retener las claves incluso a través de reinicios? Mi conocimiento básico de
ssh
sugiere que las claves siempre deben agregarse manualmente.¿Por qué
ssh-agent -D
me miente acerca de eliminar identidades?
Respuestas:
Parece que podría ser un error. Tengo un comportamiento similar en Ubuntu 10.10. Una búsqueda en Google encontró un informe de error para Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477
Para eliminar las claves adicionales que mostraba, las saqué del directorio ~ / .ssh.
fuente
Sus claves se almacenan como archivos en el directorio oculto: /home/jruser/.ssh/ así es como persisten después de reiniciar. Supongo que es que ssh-add -D los elimina de la memoria, pero cuando reinicia, se leen desde el directorio .ssh y, por lo tanto, los vuelve a tener.
fuente
ssh-add -D
NO los está borrando de la memoria. No tiene ningún efecto en absoluto.