Usando GnuPG e il suo demone gpg-agent


9

Sto usando gpg-agentper ricordare e fornire la mia GnuPGpassword durante la creazione di Debian/Ubuntupacchetti. Ma sono ancora confuso su come gpg-agentfunziona. Invoco gpg-agentcome:

eval $(gpg-agent --daemon)

A volte funziona. Ma ciò che mi preoccupa è che a volte non funziona. Cioè, a volte il processo di costruzione richiede le mie GnuPGpassword una volta, a volte nessuna, a volte molte volte. Tutto questo accade durante una singola sessione bash, dopo che ho invocato gpg-agentcome prima. La mancata richiesta della password questa volta non garantisce che non mi verrà chiesta la password la prossima volta. Non ho ancora capito perché gpgdecide di chiedermi la password e perché non lo fa.

Succede anche a te?

Grazie


1
Dovrai dedicare un po 'di tempo per cercare di individuare in quali circostanze fallisce e in quali circostanze ha successo. Se riesci a descrivere ciò che è correlato in modo affidabile al fallimento, allora è più probabile che qualcun altro pensi a una soluzione.
bignose il

In Emacs, per GNUS e .authinfo.gpg, ho un suggerimento da usare gpg2, a cui gpg-agentè associato. Quindi ha (setq epg-gpg-program "/usr/bin/gpg2")funzionato per me. Forse dovrai scoprire quali delle tue applicazioni hanno il problema, potrebbero preferire gpg(1).
Brady Trainor,

Risposte:


7

Scopri come utilizzare correttamente gpg-agentda http://tr.opensuse.org/SDB:Using_gpg-agent

A seguito di ciò, il mio gpg-agentdemone sta memorizzando GnuPGcorrettamente le mie password adesso. Non c'era niente di sbagliato nella mia configurazione, solo che non sapevo come verificare se le mie GnuPGpassword sono memorizzate correttamente nella cache o meno.

Ora faccio:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

Dal sito: "Sostituisci 0xMYKEYID con il tuo ID chiave GnuPG. Durante l'esecuzione di questo comando, l'agente dovrebbe aprire due volte una finestra di dialogo grafica della password: prima per la firma o la crittografia (gpg -ase) (gpg -ase), quindi per la decrittografia o il controllo della firma ( | gpg). D'ora in poi, ogni volta che GnuPG viene utilizzato (dalla riga di comando o incorporato in un programma grafico come KMail), la password di gpg-agent verrà passata automaticamente (fino alla scadenza del timeout o all'interfaccia grafica chiuso)."

E per evitare la scadenza della memorizzazione nella cache, ora ho impostato un periodo di timeout estremamente lungo:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000

Secondo linux.die.net/man/1/gpg-agent , puoi anche aggiungere --write-env-file "${HOME}/.gpg-agent-info"quando avvii gpg-agent e quindi aggiungerlo if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi al tuo .bashrc per rilevare se l'agente è già in esecuzione. Sembra una soluzione un po 'più pulita.
Sean the Bean,

@SeantheBean, eccellente. Lo
proverò

WARNING: "--write-env-file" is an obsolete option - it has no effectda almeno Apr 4 '16. Rif: serverfault.com/a/481174
xpt il
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.