Mám v souboru gpg.conf řádek, který říká use-agent
.
Chápu, že se to týká gpg-agent, který je démonem. Manuální stránka uvádí: „gpg-agent je démon pro správu tajných (soukromých) klíčů nezávisle na jakémkoli protokolu. Používá se jako backend pro gpg a gpgsm i pro několik dalších obslužných programů.“
Může někdo vysvětlit, co to znamená v kontextu gpg? Jaký má smysl gpg-agent?
Mám GPG 1.4 v současné době.
- Jak zjistím, zda je agent spuštěn? Vlastně mi ani není jasné, zda je gpg-agent nainstalován se základním balíčkem GPG 1.4.
- Jak jej mohu spustit, pokud není spuštěn?
- Jak mohu zastavit, pokud běží?
odpověď
Gpg-agent je program, který běží na pozadí (a démon ) a ukládá tajné klíče GPG do paměti. Když proces GPG klíč potřebuje, kontaktuje spuštěný program gpg-agent prostřednictvím soket a vyžádá si klíč. Pokud má proces agenta klíč, poskytne jej gpg. Pokud tomu tak není, pokusí se načíst zašifrovaný klíč z vašeho klíčenky a vyzve vás k zadání přístupové fráze klíče. Jakmile agent získá dešifrovaný klíč, předá jej procesu gpg. Kromě klíčů GPG může Gpg-agent podobně ukládat klíče SSH a poskytovat je procesům SSH, například ssh-agent
program, který je dodáván s SSH.
Hlavním bodem použití klíčového agenta je, abyste při každém použití klíče nemusíte zadávat svou přístupovou frázi. Agent uchovává klíč v paměti z času na čas. Samotné GPG to nemůže udělat, protože proces se ukončí, jakmile dokončí svou práci.
Další věc, kterou může klíčový agent udělat, je umožnit GPG běžícímu na vzdáleném počítači získat klíče v místním agentovi ( které je mohou načíst z místního souboru a vyzvat k zadání vaší přístupové fráze). Gpg-agent to zatím nemůže provést, jedná se o plánovanou funkci . SSH má přesměrování agentů velmi dlouho. (To je důvod, proč použijte gpg-agent pro klíče SSH.)
GPG 1.x nebo 2.0.x ví, že agent běží, protože je nastavena proměnná GPG_AGENT_INFO
. Tato proměnná obsahuje umístění soketu pro komunikaci s agentem a ID procesu agenta. GPG 2.1 vždy umístí soket agenta do ~/.gnupg
. GPG 2.x vždy spustí agenta zpracovat, pokud není spuštěn.
Agenta můžete spustit jednoduše spuštěním gpg-agent
. Chcete-li, aby byl proces agenta součástí vaší relace, můžete nahradit volání vašeho správce relací pomocí gpg-agent my-session-manager
; některé distribuce to nastavují automaticky. GPG automaticky spustí agenta a GPG 2.1 navíc najde běžícího agenta bez potřeby proměnné prostředí, takže jej nemusíte spouštět tímto způsobem, pokud nepoužíváte starší verzi GPG nebo agenta nepoužíváte k ukládání jiných typů klíčů, jako je SSH.
Agentovi můžete odeslat příkazy pomocí gpg-connect-agent
příkaz prostředí. Odešlete příkaz kill
na zabijte proces agenta (nebo mu pošlete signál).
Agent Gpg se dodává se samotným GPG. Některé distribuce jej balí samostatně.
Komentáře
- " Když proces GPG potřebuje klíč, kontaktuje spuštěný program gpg-agent prostřednictvím soketu a požádá o klíč. Pokud má proces agenta klíč, poskytuje to gpg. " Mírně zavádějící. Agent neposkytuje klíč k procesu klienta. Místo toho orms akce pomocí klíče jménem klientského procesu. (Klient poskytne agentovi něco k podpisu, šifrování nebo dešifrování a agent tak učiní.) Při použití agenta váš klientský software SSH a GPG nikdy nezíská přístup ke skutečnému klíči.
- " Agent Gpg to ' zatím nedokáže, jedná se o plánovanou funkci. SSH má přesměrování agentů velmi dlouho. (To je důvod, proč nepoužívat gpg-agent pro klíče SSH.) " Není to tak úplně pravda. gpg-agent funguje dobře s přeposíláním agentů SSH. Používám to každý den. Klient SSH zpracovává přeposílání, gpg-agent se na tom opravdu nepodílí. Není podporováno, aby GPG samotné komunikovalo s agentem na dálku.