Cómo eliminar una clave ssh?
Actualmente tengo una vieja clave SSH cargada en el servidor. El problema es que perdí mi directorio ~/.ssh
(con los archivos originales id_rsa
y id_rsa.pub
).
En consecuencia, quiero eliminar la antigua clave SSH directamente en el servidor y cargar una nueva.
Probé el siguiente comando sin éxito:
$> ssh-add -D
¿Hay alguna forma de eliminar completamente una clave SSH?
5 answers
Tenga en cuenta que hay al menos dos informes de errores para ssh-add -d/-D
no eliminar claves:
- "Informe de fallo de Debian #472477:
ssh-add -D
no elimina la clave SSH de la memoriagnome-keyring-daemon
" - "Ubuntu:
ssh-add -D
eliminar todas las identidades no funciona. Además, ¿por qué se añaden automáticamente todas las identidades?"
La cuestión exacta es:
ssh-add -d/-D
elimina solo las claves añadidas manualmente de gnome-keyring.
No hay manera de borrar teclas añadidas automáticamente.
Este es el error original, y todavía está definitivamente presente.Así que, por ejemplo, si tienes dos identidades ssh cargadas automáticamente diferentes asociadas con dos cuentas GitHub diferentes say digamos 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 'hogar' a GitHub, sin forma de subir cosas a los proyectos de trabajo.
Permitiendo a
ssh-add -d
apply to automatically-loaded keys (andssh-add -t X
to change the lifetime of automatically-loaded keys), would restore the behavior most users expect.
Más precisamente, sobre el tema:
El culpable es
gpg-keyring-daemon
:
- Subvierte el funcionamiento normal de ssh-agent, principalmente para que pueda abrir una bonita caja en la que puede escribir la frase de contraseña para una clave ssh cifrada.
- Y las patas a través de su
.ssh
directorio, y agrega automáticamente cualquier clave que encuentre a su agente.- Y no te permitirá borrar esas claves.
¿Cómo odiamos esto? No contemos las formas life la vida es muy corta.
El error se agrava porque los clientes ssh más nuevos prueban automáticamente todas las claves de su ssh-agent cuando se conectan a un host.
Si hay demasiados, el servidor rechazará la conexión.
Y desde gnome-keyring-daemon ha decidido por sí mismo cuántos claves que desea que su ssh-agent tenga, y las ha cargado automáticamente, Y NO LE PERMITIRÁ ELIMINARLAS, está frito.
Este error aún está confirmado en Ubuntu 14.04.4, hace tan solo dos días (21 de agosto de 2014)
Una posible solución:
- Haga
ssh-add -D
para eliminar todas sus manualmente claves agregadas. Esto también bloquea las claves agregadas automáticamente, pero no es mucho uso ya quegnome-keyring
le pedirá que las desbloquee de todos modos cuando intente hacer ungit push
.- Navegue hasta su carpeta
~/.ssh
y mueva todos sus archivos clave excepto el que desea identificar en una carpeta separada llamada copia de seguridad. Si es necesario, también puede abrir seahorse y eliminar las teclas desde allí.- Ahora deberías poder hacer
git push
sin ningún problema.
Otra solución:
Lo que realmente quieres hacer es apagar
gpg-keyring-daemon
por completo.
Vaya aSystem --> Preferences --> Startup Applications
, y deseleccione la casilla "SSH Key Agent (Gnome Keyring SSH Agent)
" -- tendrás que desplazarte hacia abajo para encontrarlo.Todavía obtendrá un
ssh-agent
, solo que ahora se comportará sanamente: sin claves cargadas automáticamente, ejecute ssh-add para agregarlas, y si desea eliminar claves, puede hacerlo. Imagina eso.
Este comentario en realidad sugiere:
La solución es evitar que
gnome-keyring-manager
se inicie, lo que fue extrañamente difícil al lograr finalmente eliminar el permiso de ejecución del archivo de programa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-20 10:18:25
A menos que esté mal entendido, perdió su directorio .ssh
que contiene su clave privada en su máquina local y por lo que desea eliminar la clave pública que estaba en un servidor y que permitía el inicio de sesión basado en la clave. En ese caso, se almacenará en el archivo .ssh/authorized_keys
en su directorio personal en el servidor. Solo puede editar este archivo con un editor de texto y eliminar la línea relevante si puede identificarlo (¡aún más fácil si es la única entrada!). Espero que esa llave no fuera tu único método de acceso a la servidor y usted tiene alguna otra forma de iniciar sesión y editar el archivo. Puede agregar manualmente una nueva clave pública al archivo authorised_keys
o usar ssh-copy-id
. De cualquier manera, necesitará la autenticación de contraseña configurada 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 utilice los privilegios dados por las identidades en cualquier lugar de la red de una manera segura."(página de manual), 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 que yo sepa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-23 18:47:14
La forma más simple sería
ssh-keygen -R hostname
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-24 00:56:52
Abrí la aplicación "Contraseñas y claves" en mi Unity y eliminé las claves no deseadas de Secure Keys -> Llaves de OpenSSH Y automáticamente habían sido removidos de ssh-agent-l también.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-13 11:21:21
Si está intentando realizar una operación relacionada con ssh y obtiene 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-07 17:30:40