"ssh-add -d" se negó a eliminar la identidad

"ssh-add -d" se negó a eliminar la identidad

Para olvidar la frase de contraseña de las claves privadas (id_rsa), normalmente ejecuto:

ssh-add -D # to forget all loaded identities
ssh-add -d # to forget primary identity ($HOME/.ssh/id_rsa)

Ahora con macOS Sierra v10.12.1 aparece este error:

$ ssh-add -D
All identities removed.
$ ssh-add -d
Could not remove identity "/Users/user/.ssh/id_rsa": agent refused operation
Could not remove identity "/Users/user/.ssh/id_dsa": agent refused operation

¡Busqué en Google sin suerte!

Respuesta1

Tuve el mismo problema con Sierra. Intente eliminarlo id_rsay $HOME/.ssh/luego reiniciarlo (yo id_rsa.pubtambién lo eliminé; por lo tanto, las dos clavesprivadoypúblico). Resolvió mi problema.

Respuesta2

En mi caso, tuve un problema ligeramente diferente. Cuando invoqué, ssh-add -Del agente pareció tener éxito y respondió, All identities removed.pero de hecho, al enumerar las claves del agente, ssh-add -llas claves no deseadas permanecían en la lista y, por supuesto, al intentar usar el agente para autenticarme en un host remoto, el agente me indicaba que usara mi configuración configurada. programa pin para obtener una frase de contraseña para las claves no deseadas. Irritante.

La causa del problema fue que mi demonio gpg-agent había almacenado en caché las claves en un archivo en la ruta ~/.gnupg/sshcontrol:

$ cat ~/.gnupg/sshcontrol
# List of allowed ssh keys.  Only keys present in this file are used
# in the SSH protocol.  The ssh-add tool may add new entries to this
# file to enable them; you may also add them manually.  Comment
# lines, like this one, as well as empty lines are ignored.  Lines do
# have a certain length limit but this is not serious limitation as
# the format of the entries is fixed and checked by gpg-agent. A
# non-comment line starts with optional white spaces, followed by the
# keygrip of the key given as 40 hex digits, optionally followed by a
# caching TTL in seconds, and another optional field for arbitrary
# flags.   Prepend the keygrip with an '!' mark to disable it.

# RSA key added on: 2021-06-03 16:23:25
# Fingerprints:  MD5:c1:[elided]:24
#                SHA256:+Mj[elided]E4
21[elided]C9 0
# Ed25519 key added on: 2021-06-03 22:11:36
# Fingerprints:  MD5:[elided]:24:da
#                SHA256:EL[elided]Zs
E0[elided]47 0

Eliminar esas claves ~/.gnupg/sshcontrolme permitió reanudar el uso de gpg-agent para autenticarme en hosts remotos sin que el agente me pidiera una frase de contraseña para las claves que ya no estaba usando.

Respuesta3

Este error me ocurrió cuando la identidad a la que se hacía referencia era diferente a la que se agregó. La -dopción elimina una clave específica. Si esa clave nunca se cargó, se niega a eliminarla. Puede verificar las claves cargadas ssh-add -ly verificar las firmas de claves conssh-keygen -lf <path-to-private-key>

Respuesta4

Descubrí que Ubuntu 18.04 todavía tiene este error.

Esta es mi forma sencilla de eliminar claves no deseadas de ssh-agent sin ningún esfuerzo significativo:

  1. Encuentra la clave que deseas eliminar

    ssh-add -l
    2048 SHA256:qzJYF7AJAJsLsJn7ZFPcJ+w78ZJVoPZI9TzXCq2cf5 .ssh/bad-key.pem (RSA)
    
  2. Vaya a su directorio ~/.ssh y cree un subdirectorio llamado, por ejemplo, deshabilitado

    cd ~/.ssh
    mkdir disabled
    
  3. Mueva la clave que desea desactivar a ese directorio.

    mv bad-key.pem disabled/
    

Eso es todo. La clave ya no debería estar disponible en el ssh-agent, pero aún puedes tenerla y volver a agregarla si es necesario.

información relacionada