"ssh-add -d" recusou-se a remover a identidade

"ssh-add -d" recusou-se a remover a identidade

Para esquecer a senha das chaves privadas (id_rsa), normalmente executo:

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

Agora, com o macOS Sierra v10.12.1, recebo este erro:

$ 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

Pesquisei no Google sem sorte!

Responder1

Eu tive o mesmo problema com a Sierra. Tente remover id_rsae $HOME/.ssh/reiniciar (eu id_rsa.pubtambém removi - portanto, as duas chavesprivadoepúblico). Isso resolveu meu problema.

Responder2

No meu caso, tive um problema um pouco diferente. Quando invoquei, ssh-add -Do agente pareceu ter sucesso e respondeu, All identities removed.mas na verdade, ao listar as chaves do agente, ssh-add -las chaves indesejadas permaneceram listadas e, claro, ao tentar usar o agente para autenticar em um host remoto, o agente me avisaria usando meu configurado programa pin para uma senha para as chaves indesejadas. Chato.

A causa do problema foi que meu daemon gpg-agent armazenou em cache as chaves em um arquivo no caminho ~/.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

A exclusão dessas chaves ~/.gnupg/sshcontrolme permitiu retomar o uso do gpg-agent para autenticar em hosts remotos sem que o agente exigisse uma senha para chaves que eu não estava mais usando.

Responder3

Este erro aconteceu comigo quando a identidade referenciada era diferente daquela que foi adicionada. A -dopção remove uma chave específica. Se essa chave nunca foi carregada, ela se recusa a removê-la. Você pode verificar as chaves carregadas ssh-add -le verificar as armaduras das teclas comssh-keygen -lf <path-to-private-key>

Responder4

Descobri que o Ubuntu 18.04 ainda tem esse bug.

Aqui está minha maneira simples de remover chaves indesejadas do ssh-agent sem nenhum esforço significativo:

  1. Encontre a chave que você deseja remover

    ssh-add -l
    2048 SHA256:qzJYF7AJAJsLsJn7ZFPcJ+w78ZJVoPZI9TzXCq2cf5 .ssh/bad-key.pem (RSA)
    
  2. Vá para o diretório ~/.ssh e crie um subdiretório chamado, por exemplo, desativado

    cd ~/.ssh
    mkdir disabled
    
  3. Mova a chave que deseja desabilitar para esse diretório.

    mv bad-key.pem disabled/
    

É isso. A chave não deve estar mais disponível no agente ssh, mas você ainda pode tê-la e adicioná-la novamente se precisar.

informação relacionada