Mejores prácticas para SSH, tmux y agente de GnuPG

Estoy intentando consolidar mi software de encriptación para GnuPG, y me estoy encontrando con un problema confuso.

Mi unidad principal es un server sin cabeza, y trabajo exclusivamente en tmux. No hay session X, y por lo tanto he configurado gpg-agent para usar pinentry-curses. He configurado gpg-agent para que se llame al inicio de session con la emulación de ssh-agent con 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 

Ya he agregado mi key ssh a gpg-agent, sin embargo, cuando bash otra session ssh, el command se cuelga.

Descubrí que si elimino gpg-agent y creo un nuevo shell de inicio de session, el agente funciona como debería (llamando a pinentry-curses para que funcione como ssh-agent).

Sin embargo, si creo otro shell de inicio de session (por ejemplo, abriendo otro panel de tmux) e bash de ssh, el command se bloquea y la window de pinentry-curses se imprime sobre el contenido del shell de inicio de session que originalmente lanzó el agente.

Además, si he cerrado el intérprete de commands que originalmente lanzó el agente, pinentry-curses se llama de todos modos y causa un ciclo infinito que paraliza la CPU. (Error conocido, ver http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936 .)

En esencia, me gustaría saber qué cambiar sobre mi configuration para hacer que el agente GnuPG funcione de manera tan fluida como ssh-agent. ¡Gracias por cualquier ayuda!

Resulta que este fue increíblemente simple. En lugar de usar esa secuencia de commands, simplemente eliminé la opción "–agents" de mi antiguo script de lanzamiento de llavero (guía aquí ).

Esto hace que el progtwig Keychain busque tanto los files ssh-agent AND gpg-agent. Ahora mi sistema de encriptación funciona sin interrupciones, incluso si confío en ambos types de agentes.