
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_rsa
e $HOME/.ssh/
reiniciar (eu id_rsa.pub
també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 -D
o agente pareceu ter sucesso e respondeu, All identities removed.
mas na verdade, ao listar as chaves do agente, ssh-add -l
as 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/sshcontrol
me 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 -d
opçã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 -l
e 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:
Encontre a chave que você deseja remover
ssh-add -l 2048 SHA256:qzJYF7AJAJsLsJn7ZFPcJ+w78ZJVoPZI9TzXCq2cf5 .ssh/bad-key.pem (RSA)
Vá para o diretório ~/.ssh e crie um subdiretório chamado, por exemplo, desativado
cd ~/.ssh mkdir disabled
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.