Melhores práticas para agente SSH, tmux e GnuPG

Melhores práticas para agente SSH, tmux e GnuPG

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

Minha unidade principal é um servidor headless e trabalho exclusivamente no tmux. Não há sessão X e, portanto, configurei o gpg-agent para usar pinentry-curses. 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

Já adicionei minha chave ssh ao gpg-agent, porém quando tento outra sessão ssh o comando trava.

Eu descobri que se eu matar o gpg-agent e criar um novo shell de login, o agente funcionará como deveria (chamando pinentry-curses e depois funcionando como ssh-agent).

Se, no entanto, eu criar outro shell de login (por exemplo, abrindo outro painel tmux) e tentar fazer o ssh, o comando trava e a janela pinentry-curses é impressa sobre o conteúdo do shell de login que originalmente iniciou o agente.

Além disso, se eu fechei o shell que originalmente iniciou o agente, pinentry-curses será chamado de qualquer maneira e causará um loop infinito que prejudica a CPU. (Bug conhecido, vejahttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936.)

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

Responder1

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

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

informação relacionada