Mejores prácticas para SSH, tmux y agente GnuPG

Mejores prácticas para SSH, tmux y agente GnuPG

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 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 agregué mi clave ssh a gpg-agent, sin embargo, cuando intento otra sesión ssh, el comando se bloquea.

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 funcionando como ssh-agent).

Sin embargo, si creo otro shell de inicio de sesión (por ejemplo, abriendo otro panel tmux) e intento realizar ssh, el comando se bloquea y la ventana pinentry-curses se imprime sobre el contenido del shell de inicio de sesión que inició originalmente el agente.

Además, si cerré el shell que lanzó originalmente el agente, se llama pinentry-curses de todos modos y provoca un bucle infinito que paraliza la CPU. (Error conocido, verhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936.)

En esencia, me gustaría saber qué cambiar en mi configuración para que el agente GnuPG funcione tan perfectamente como el agente ssh. ¡Gracias por cualquier ayuda!

Respuesta1

Resulta que este era increíblemente simple. En lugar de usar ese script, simplemente eliminé la opción "--agents" de mi antiguo script de inicio de llavero (guíaaquí).

Esto hace que el programa Keychain busque archivos ssh-agent Y gpg-agent. Ahora mi sistema de cifrado funciona sin problemas, incluso dependiendo de ambos tipos de agentes.

información relacionada