Estoy intentando consolidar mi software de cifrado en GnuPG, y me encuentro con un problema confuso.
Mi unidad principal es un servidor sin cabeza, y trabajo exclusivamente en tmux. No hay sesión X y, por lo tanto, configuré gpg-agent para usar pinentry-curses. He configurado gpg-agent para que se llame al iniciar sesión con la emulación 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 clave ssh a gpg-agent, sin embargo, cuando intento otra sesión ssh, el comando se cuelga.
Descubrí que si elimino gpg-agent y creo un nuevo shell de inicio de sesión, el agente funciona como debería (llamando a pinentry-curses y luego trabajando como ssh-agent).
Sin embargo, si creo otro shell de inicio de sesión (por ejemplo, abriendo otro panel tmux) e intento ejecutar ssh, el comando se bloquea y la ventana de maldiciones de pinentry se imprime sobre el contenido del shell de inicio de sesión que lanzó originalmente el agente.
Además, si he cerrado el shell que originalmente lanzó el agente, pinentry-curses se llama de todos modos y causa un bucle infinito que paraliza la CPU. (Error conocido, consulte http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936 .)
En esencia, me gustaría saber qué cambiar sobre mi configuración para que el agente GnuPG funcione tan perfectamente como el agente ssh. ¡Gracias por cualquier ayuda!