No se pueden eliminar claves de ssh-agent. Incluso reiniciar no ayuda

18

Hace poco tiempo noté que había tres claves en mi agente ssh que no podía eliminar. ssh-add -lmostró tres llaves; Corrí ssh-add -Dy me dijeron "Todas las identidades eliminadas"; pero luego un inmediato ssh-add -lmostró 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-agentmá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:

  1. ¿Cómo lograron retener las claves incluso a través de reinicios? Mi conocimiento básico de sshsugiere que las claves siempre deben agregarse manualmente.

  2. ¿Por qué ssh-agent -Dme miente acerca de eliminar identidades?

Sean
fuente
Hay un insecto Fedora / Red Hat también: bugzilla.redhat.com/show_bug.cgi?id=1205546
spoovy

Respuestas:

11

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.

mp3foley
fuente
¡Si! Esto funciona para mi. ¡Gracias! Uso Debian Wheezy beta 4.
Tarrasch
3
Finalmente se abrochó e investigó. El culpable es gnome-keyring-daemon, que a) carga automáticamente todas las claves en ~ / .ssh, yb) se niega a renunciar a ellas. La solución es evitar que gnome-keyring-manager se inicie, lo cual fue extrañamente difícil de lograr al eliminar el permiso de ejecución del archivo de programa.
Sean
¿Hay alguna solución para esto que no implique cojear gnome-keyring-manager? es decir, ¿arreglar gnome-keyring-manager para que elimine las claves que se le indica?
Phil
1
Es 2018 y esto sigue siendo relevante. Tengo que mover las teclas de ~ / .ssh
Carson Ip
1
Guau. Elimine las claves de ~ / .ssh y colóquelas en otro directorio como @CarsonIp mencionó, y luego use un comando ssh-agent en su bashrc para cargar manualmente las claves ssh adicionales del otro directorio. PIMA!
Ligemer
3

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.

pbsmind
fuente
44
Pero ssh-add -DNO los está borrando de la memoria. No tiene ningún efecto en absoluto.
Sean