gpg-agent recusa chaves SSH com o relatório ssh-add “operação recusada pelo agente”

5

Estou usando o openssh7.5p1 e o gnupg 2.1.21 no arch linux (essas são as versões padrão que vêm com o arch). Eu gostaria de usar gpg-agent como um agente ssh. Eu coloquei o seguinte no meu ~/.gnupg/gpg-agent.conf :

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Arch inicia automaticamente um agente-gpg do systemd, então eu configurei

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

Quando executo ssh-add -l , ele não gera identidades e ps informa um gpg-agent --supervised do processo como seria de esperar.

Infelizmente, quando executo ssh-add , não importa o tipo de chave, não funciona. Aqui está um exemplo de como eu tentei o dsa:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

Todas as outras funções gpg funcionam corretamente (criptografando / descriptografando / assinando). Além disso, as chaves que eu gero funcionam bem se eu usá-las diretamente com o ssh, e elas funcionam corretamente se eu executar o ssh-agent que vem com o openssh.

A documentação diz que ssh-add deve adicionar chaves a ~/.gnupg/sshcontrol , mas obviamente nada está acontecendo.

Minha pergunta: Qual é a maneira mais fácil de carregar uma chave gerada por ssh-keygen do openssh em gpg-agent , e alguém pode cortar e colar uma sessão de terminal mostrando como isso funciona?

    
por user3188445 19.06.2017 / 05:05

1 resposta

8

A resposta aparentemente foi executada:

echo UPDATESTARTUPTTY | gpg-connect-agent

Eu não tenho idéia do porque o programa pinentry funcionou bem para outros usos, como descriptografar arquivos, mas não funcionou para ssh-add .

Embora isso agora funcione, ele também faz uma cópia da chave privada ssh que não aparece em gpg -Kv e, além disso, parece não permitir que você altere a frase secreta em sua chave privada (já que você pode editá-lo com --edit-key ). Basicamente eu estou muito insatisfeito com a maneira como o gpg-agent fornece baixa visibilidade de onde seus segredos estão sendo copiados. Se você tiver acertado essa pergunta porque esperava que gpg-agent fosse uma alternativa melhor para ssh-agent , convido-o a aderir a ssh-agent em vez de testar minha resposta. A principal razão para preferir gpg-agent é se você precisa usar o cartão inteligente.

    
por 19.06.2017 / 06:55