Best practice per SSH, tmux e GnuPG Agent


12

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!

Risposte:


4

Si scopre che questo è stato incredibilmente semplice. Invece di usare quello script, ho semplicemente rimosso l'opzione "--agents" dal mio vecchio script di lancio del portachiavi (guida qui ).

Questo fa sì che il programma Keychain cerchi sia i file ssh-agent che i file gpg-agent. Ora il mio sistema di crittografia funziona senza problemi, anche se si basa su entrambi i tipi di agenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.