remove publickey permission keygen generate generar clave git ssh git-svn ssh-keys ssh-keygen

git - publickey - ssh-keygen windows



¿Cómo eliminar una clave ssh? (5)

Actualmente tengo una clave SSH cargada en el servidor. El problema es que perdí mi directorio ~/.ssh (con los archivos id_rsa e id_rsa.pub originales).

En consecuencia, quiero eliminar la antigua clave SSH directamente en el servidor y subir una nueva.

Probé el siguiente comando sin éxito:

$> ssh-add -D

¿Hay alguna manera de eliminar por completo una clave SSH?


A menos que malinterprete, perdió su directorio .ssh contiene su clave privada en su equipo local y por lo tanto desea eliminar la clave pública que estaba en un servidor y que permitió el inicio de sesión basado en claves. En ese caso, se almacenará en el archivo .ssh/authorized_keys en su directorio de inicio en el servidor. Puede editar este archivo con un editor de texto y eliminar la línea correspondiente si puede identificarlo (¡aún más fácil si es la única entrada!). Espero que la clave no sea su único método de acceso al servidor y que tenga alguna otra forma de iniciar sesión y editar el archivo. Puede agregar manualmente una nueva clave pública a authorised_keys o usar ssh-copy-id . De cualquier manera, necesitará configurar la autenticación de contraseña para su cuenta en el servidor, o alguna otra identidad o método de acceso para acceder al archivo authorized_keys en el servidor.

ssh-add agrega identidades a su agente ssh que maneja la administración de sus identidades localmente y "la conexión al agente se reenvía a través de inicios de sesión remotos SSH, y el usuario puede usar los privilegios proporcionados por las identidades en cualquier parte de la red de forma segura " (página man), así que no creo que sea lo que quieres en este caso. No tiene forma de obtener su clave pública en un servidor sin que tenga acceso a dicho servidor a través de un inicio de sesión ssh, hasta donde yo sé.


Abrí la aplicación "Contraseñas y claves" en mi Unidad y eliminé las claves no deseadas de las Teclas de seguridad -> Claves de OpenSSH Y también se eliminaron automáticamente de ssh-agent -l .


La manera más simple sería

ssh-keygen -R hostname


Si intentas realizar una operación relacionada con ssh y obtienes el siguiente error:

$ git fetch no such identity: <ssh key path>: No such file or directory

Puede eliminar la clave ssh que falta de su agente ssh con lo siguiente:

$ eval `ssh-agent -s` # start ssh agent $ ssh-add -D <ssh key path> # delete ssh key


Tenga en cuenta que hay al menos dos informes de errores para ssh-add -d/-D no eliminan claves:

El problema exacto es:

ssh-add -d/-D elimina solo las claves agregadas manualmente desde 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 diferentes de GitHub, por ejemplo, para el trabajo y para el hogar, no hay forma de cambiar entre ellas. GitHubtakes el primero que coincide, por lo que siempre apareces como el usuario de tu hogar en GitHub, sin posibilidad de subir cosas a proyectos de trabajo.

Permitir que ssh-add -d aplique a las teclas cargadas automáticamente (y ssh-add -t X para cambiar el tiempo de vida de las teclas cargadas automáticamente) restauraría el comportamiento que la mayoría de los usuarios esperan.

Más precisamente, sobre el tema:

El culpable es gpg-keyring-daemon :

  • Subvierte la operación normal de ssh-agent, sobre todo para que pueda aparecer una bonita caja en la que puede escribir la contraseña para una clave ssh cifrada.
  • Y recorre su directorio .ssh y agrega automáticamente las claves que encuentre a su agente.
  • Y no te permitirá borrar esas claves.

¿Cómo odiamos esto? No cuentemos las formas, la vida es muy corta.

La falla se agrava porque los clientes ssh más nuevos prueban automáticamente todas las claves en su ssh-agent 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 quieres que tenga tu ssh-agent, y las ha cargado automáticamente, Y NO TE DEJARÁ BORRARlas, estás muy bien.

Este error aún se confirma en Ubuntu 14.04.4, tan recientemente como hace 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 sirve de mucho ya que gnome-keyring le pedirá que las desbloquee de todos modos cuando intente hacer un git push .
  • Navegue a su carpeta ~/.ssh 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 caballitos de mar y eliminar las claves desde allí.
  • Ahora deberías poder hacer git push sin ningún problema.

Otra solución:

Lo que realmente quieres hacer es desactivar gpg-keyring-daemon completo.
Vaya a System --> Preferences --> Startup Applications y deseleccione el cuadro " SSH Key Agent (Gnome Keyring SSH Agent) "; deberá desplazarse hacia abajo para encontrarlo.

Todavía obtendrá un ssh-agent , solo que ahora se comportará de manera sensata: sin claves autocargadas, ejecute ssh-add para agregarlas, y si desea eliminar las claves, puede hacerlo. Imagina eso.

Este comentario en realidad sugiere:

La solución es evitar que gnome-keyring-manager se inicie, lo cual fue extrañamente difícil al lograr finalmente eliminar el permiso de ejecución del archivo de programa.