Gpg-agent è un programma che viene eseguito in background (un demone ) e memorizza le chiavi segrete GPG in memoria. Quando un processo GPG necessita della chiave, contatta il programma gpg-agent in esecuzione tramite un socket e richiede la chiave. Se il processo dell'agente ha la chiave, la fornisce a gpg. In caso contrario, tenta di caricare la chiave crittografata dal tuo portachiavi e ti chiede la passphrase della chiave. Una volta che l'agente ha ottenuto la chiave decodificata, la passa al processo gpg. Oltre alle chiavi GPG, Gpg-agent può allo stesso modo archiviare le chiavi SSH e fornirle ai processi SSH, come il ssh-agent
programma fornito con SSH.
Il punto principale dell'uso di un agente chiave è che non è necessario digitare la passphrase ogni volta che si utilizza la chiave. L'agente mantiene la chiave in memoria da una volta all'altra. Lo stesso GPG non può farlo perché il processo termina una volta terminato il suo lavoro.
Un'altra cosa che un key agent può fare è consentire a GPG in esecuzione su un computer remoto di ottenere le chiavi nell'agent locale (che potrebbe caricarle da un file locale e richiedere la passphrase). L'agente Gpg non può ancora farlo, è una funzionalità pianificata . SSH ha inoltrato agenti da molto tempo. (Questo è un motivo per non usare gpg-agent per le chiavi SSH.)
GPG 1.xo 2.0.x sa che l'agente è in esecuzione perché la GPG_AGENT_INFO
variabile è impostata. Questa variabile contiene la posizione del socket per comunicare con l'agente e l'ID del processo dell'agente. GPG 2.1 inserisce sempre il socket dell'agente ~/.gnupg
. GPG 2.x avvia sempre un processo agente se non è in esecuzione.
È possibile avviare l'agente semplicemente eseguendo gpg-agent
. Se si desidera mantenere un processo agente come parte della sessione, è possibile sostituire l'invocazione del gestore della sessione con gpg-agent my-session-manager
; alcune distribuzioni lo impostano automaticamente. GPG avvierà automaticamente l'agente e GPG 2.1 troverà inoltre un agente in esecuzione senza la necessità di una variabile di ambiente, quindi non è necessario avviarlo in questo modo a meno che non si usi una versione precedente di GPG o si usi l'agente per memorizzare altri tipi di chiavi come SSH.
È possibile inviare i comandi agent con il gpg-connect-agent
comando shell. Invia il kill
comando per interrompere il processo dell'agente (o inviagli un segnale).
L'agente Gpg viene fornito con GPG stesso. Alcune distribuzioni lo confezionano separatamente.