Estou usando o openssh7.5p1 e o gnupg 2.1.21 no arch linux (estas são as versões padrão que acompanham 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
O Arch inicia automaticamente um gpg-agent a partir do systemd, então defino
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
Quando executo ssh-add -l
, ele não relata identidades e ps
relata um gpg-agent --supervised
processo como eu esperaria.
Infelizmente, quando corro ssh-add
, independentemente do tipo de chave, ele 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 (criptografar / descriptografar / assinar). Além disso, as chaves que eu gero funcionam bem se eu as usar diretamente com o ssh, e elas funcionarão corretamente se eu executar o ssh-agent
que acompanha o openssh.
A documentação diz que ssh-add
deve adicionar chaves ~/.gnupg/sshcontrol
, mas obviamente nada está acontecendo.
Minha pergunta: Qual é a maneira mais fácil de carregar uma chave gerada pelo do OpenSSH ssh-keygen
em gpg-agent
, e alguém por favor pode cortar e colar uma sessão de terminal mostrar como isso funciona?