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?


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.


¡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.


44
Pero ssh-add -DNO los está borrando de la memoria. No tiene ningún efecto en absoluto.
— Sean
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.