Sto tentando di consolidare il mio software di crittografia su GnuPG e sto riscontrando un problema confuso.
La mia unità principale è un server senza testa e lavoro esclusivamente in tmux. Non esiste una sessione X, e quindi ho configurato gpg-agent per usare maledizioni pinentry. Ho configurato gpg-agent per essere chiamato all'accesso con emulazione ssh-agent con questo 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
Ho già aggiunto la mia chiave ssh a gpg-agent, tuttavia quando provo un'altra sessione ssh il comando si blocca.
Ho scoperto che se uccido gpg-agent e creo una nuova shell di login, l'agente funziona come dovrebbe (chiamando pinentry-curses e poi lavorando come ssh-agent).
Se, tuttavia, creo un'altra shell di accesso (ad esempio aprendo un altro riquadro di tmux) e provo a ssh, il comando si blocca e la finestra di pinentry-curses viene stampata sul contenuto della shell di login che originariamente ha lanciato l'agente.
Inoltre, se ho chiuso la shell che originariamente ha lanciato l'agente, le maledizioni pinentry sono chiamate comunque e causano un loop infinito paralizzante della CPU. (Bug noto, vedi http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936 .)
In sostanza, mi piacerebbe sapere cosa cambiare della mia configurazione per far funzionare l'agente GnuPG perfettamente come l'agente ssh. Grazie per qualsiasi aiuto!