O agente GPG não remove minha chave SSH do chaveiro

10

Eu tenho um problema realmente preocupante. Não consigo obter gpg-agent para remover minha chave SSH de seu chaveiro e ela ainda persiste depois de muitas reinicializações.

$ ssh-add -D
SSH_AGENT_FAILURE
Failed to remove all identities.

Mesmo quando digo para remover a identidade:

$ ssh-add -d /path/to/private/key
Identity removed: /path/to/private/key

Eu então procuro

$ ssh-add -l
4096 1b:cb:52:a6:e5:13:e6:78:14:12:92:8f:34:8f:92:88 /path/to/private/key

e ainda está lá.

Onde isso está sendo armazenado em cache? Parece estar gravando no disco por alguma razão, o que é assustador para um agente SSH fazer. Estou executando o seguinte para iniciar o gpg-agent :

gpg-agent --enable-ssh-support --daemon 

Tudo o mais funciona bem, mas está armazenando esse arquivo em algum lugar e preciso excluí-lo.

    
por Naftuli Kay 18.02.2015 / 02:17

2 respostas

11

Assim como a maioria das coisas GPG, as credenciais ssh são armazenadas em cache dentro do diretório .gnupg , especificamente em ~/.gnupg/sshcontrol , que será parecido com isto:

# 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
# the caching TTL in seconds and another optional field for arbitrary
# flags.   Prepend the keygrip with an '!' mark to disable it.

# Key added on: 2013-09-19 22:15:50
# Fingerprint:  8b:56:b0:3f:c8...
681BF1EFF... 0
# Key added on: 2013-09-20 17:14:36
# Fingerprint:  4b:cb:7e:b0:d7...
F7BCEBD1C... 0

Como o comentário diz, você pode remover as chaves excluindo-as ou desativar eles com um ! . Eu não testei, mas imagino que "desabilitar" um chave significa que você não pode explicitamente ativá-lo ou adicioná-lo sem editar o arquivo.

    
por 18.02.2015 / 05:38
7

Sim, parece que ssh -d está quebrado com o agente do gpg. Aqui está uma solução alternativa usando um comando diferente.

Execute o comando gpg-connect-agent na linha de comando para se conectar ao agente. Então, a partir dos prompts lá, digite este comando para listar as chaves ssh

KEYINFO --ssh-list --ssh-fpr

Você deve ver algo como:

S KEYINFO 3365433C34421CC53B52C9A82169FD2328CF610B D - - - P df:a2:36:8d:ad:88:b3:cc:00:96:10:d4:c9:2c:e0:df - S
OK

Agora, para remover o do agente:

DELETE_KEY 3365433C34421CC53B52C9A82169FD2328CF610B

Ele dirá:

OK

Agora, saia com o comando BYE:

BYE OK closing connection

Agora, verifique com ssh-add -l e você verá que o resultado foi real.

    
por 04.01.2018 / 15:49

Tags