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

12

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!

Tammer Ibrahim
fuente

Respuestas:

4

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ía aquí ).

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

Tammer Ibrahim
fuente