Práticas recomendadas para SSH, tmux e GnuPG Agent

11

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

Minha unidade principal é um servidor sem cabeçalho, e eu trabalho exclusivamente no tmux. Não há sessão X e, portanto, configurei o gpg-agent para usar curses de pinagem. Eu configurei o gpg-agent para ser chamado no login com a emulação do agente ssh 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 eu 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 curses de pinentry e funcionando como ssh-agent).

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

Além disso, se eu tiver fechado o shell que originalmente lançou o agente, o xingamento de pinagem será chamado de qualquer maneira e causará um loop infinito cpu-crippling. (Bug conhecido, veja link .)

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

    
por Tammer Ibrahim 12.07.2012 / 20:34

1 resposta

4

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

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

    
por 24.07.2012 / 00:15

Tags