Tenga en cuenta que hay al menos dos informes de errores para ssh-add -d/-D
no eliminar claves:
El problema exacto es:
ssh-add -d/-D
elimina solo las claves agregadas manualmente de gnome-keyring.
No hay forma de eliminar las claves agregadas automáticamente.
Este es el error original, y todavía está definitivamente presente.
Entonces, por ejemplo, si tiene dos identidades ssh cargadas automáticamente diferentes asociadas con dos cuentas GitHub diferentes, por ejemplo, para el trabajo y para el hogar, no hay forma de cambiar entre ellas. GitHub toma el primero que coincide, por lo que siempre aparece como su usuario 'principal' en GitHub, sin forma de cargar cosas para proyectos de trabajo.
Permitir ssh-add -d
aplicar a cargado automáticamente claves (y ssh-add -t X
cambiar la vida útil de las claves cargadas automáticamente) restablecería el comportamiento que la mayoría de los usuarios esperan.
Más precisamente, sobre el tema:
El culpable es gpg-keyring-daemon
:
- Subvierte el funcionamiento normal de ssh-agent, principalmente solo para que pueda abrir un cuadro bonito en el que puede escribir la frase de contraseña para una clave ssh cifrada.
- Y las patas atraviesan tu
.ssh
directorio, y agrega automáticamente cualquier clave que encuentre a su agente.
- Y no te permitirá eliminar esas claves.
¿Cómo odiamos esto? No contemos las formas: la vida es demasiado corta.
El error se agrava porque los clientes ssh más nuevos prueban automáticamente todas las claves en su agente ssh cuando se conectan a un host.
Si hay demasiados, el servidor rechazará la conexión.
Y dado que gnome-keyring-daemon ha decidido por sí mismo cuántas claves desea que tenga su agente ssh, y las ha autocargado, Y NO PERMITE ELIMINARLAS, está tostado.
Este error aún se confirma en Ubuntu 14.04.4, hace tan solo dos días (21 de agosto de 2014)
Una posible solución alternativa:
- Haga
ssh-add -D
para eliminar todas las claves agregadas manualmente . Esto también bloquea las teclas agregadas automáticamente, pero no es muy útil ya que gnome-keyring
le pedirá que las desbloquee de todos modos cuando intente hacer una git push
.
- Navegue a su
~/.ssh
carpeta y mueva todos sus archivos clave excepto el que desea identificar a una carpeta separada llamada copia de seguridad. Si es necesario, también puede abrir seahorse y eliminar las claves desde allí.
- Ahora deberías poder hacerlo
git push
sin ningún problema.
Otra solución alternativa:
Lo que realmente quieres hacer es apagar por gpg-keyring-daemon
completo.
Ve a System --> Preferences --> Startup Applications
y desmarca la SSH Key Agent (Gnome Keyring SSH Agent)
casilla " ". Necesitarás desplazarte hacia abajo para encontrarlo.
Todavía obtendrá un ssh-agent
, solo que ahora se comportará de manera sensata: no se cargan automáticamente las teclas, ejecuta ssh-add para agregarlas, y si desea eliminar las teclas, puede hacerlo. Imagina eso.
Este comentario realmente sugiere:
La solución es evitar gnome-keyring-manager
que se inicie, lo cual fue extrañamente difícil de lograr finalmente al eliminar el permiso de ejecución del archivo de programa.
Ryan Lue agrega otro caso interesante en los comentarios :
En caso de que esto ayude a alguien: incluso intenté eliminar los archivos id_rsa
y por id_rsa.pub
completo, y la clave seguía apareciendo.
Resulta que los gpg-agent
estaba almacenando en caché en un ~/.gnupg/sshcontrol
archivo ; Tuve que eliminarlos manualmente desde allí.
Ese es el caso cuando elkeygrip
se ha añadido como aquí .
ssh-add -d
?