Práticas recomendadas para SSH, tmux e GnuPG Agent

12

Estou tentando consolidar meu software de criptografia no GnuPG e estou com um problema confuso.

Minha unidade principal é um servidor sem cabeça e trabalho exclusivamente no tmux. Não há sessão X e, portanto, eu configurei o gpg-agent para usar pinentry-maldições. Eu configurei o gpg-agent para ser chamado no login com emulação ssh-agent com este script:

if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
    eval `cat $gnupginf`
    eval `cut -d= -f1 $gnupginf | xargs echo export`
else              
    eval `gpg-agent -s --enable-ssh-support --daemon`
fi

Eu já adicionei minha chave ssh ao gpg-agent, no entanto, quando tento outra sessão ssh, o comando trava.

Descobri que, se eu matar o gpg-agent e criar um novo shell de login, o agente funcionará como deveria (chamando pinentry-maldições e funcionando como ssh-agent).

No entanto, se eu criar outro shell de logon (por exemplo, abrindo outro painel tmux) e tentar o ssh, o comando travará e a janela pinentry-maldições será impressa sobre o conteúdo do shell de logon que iniciou o agente originalmente.

Além disso, se eu fechei o shell que originalmente lançou o agente, as pinentry-maldições são chamadas de qualquer maneira e causam um loop infinito incapacitante para a CPU. (Bug conhecido, consulte http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936 .)

Em essência, eu gostaria de saber o que mudar na minha configuração para fazer o agente GnuPG funcionar tão perfeitamente quanto o ssh-agent. Obrigado por qualquer ajuda!

Tammer Ibrahim
fonte

Respostas:

4

Acontece que este foi incrivelmente simples. Em vez de usar esse script, simplesmente removi a opção "--agents" do meu antigo script de inicialização de chaves (guia aqui ).

Isso faz com que o programa Keychain procure os arquivos ssh-agent E gpg-agent. Agora, meu sistema de criptografia funciona perfeitamente, mesmo contando com os dois tipos de agentes.

Tammer Ibrahim
fonte