Gpg-agent to program działający w tle ( demon ) i przechowujący tajne klucze GPG w pamięci. Gdy proces GPG potrzebuje klucza, kontaktuje się z działającym programem gpg-agent przez gniazdo i żąda klucza. Jeśli proces agenta ma klucz, dostarcza go do gpg. Jeśli tak się nie stanie, spróbuje załadować zaszyfrowany klucz z twojego klucza i wyświetli monit o podanie hasła klucza. Gdy agent uzyska odszyfrowany klucz, przekazuje go do procesu gpg. Oprócz kluczy GPG agent Gpg może podobnie przechowywać klucze SSH i udostępniać je procesom SSH, takim jak ssh-agent
program dostarczany z SSH.
Głównym celem korzystania z kluczowego agenta jest to, że nie musisz wpisywać hasła za każdym razem, gdy używasz swojego klucza. Agent przechowuje klucz w pamięci od czasu do czasu. Sam GPG nie może tego zrobić, ponieważ proces kończy się, gdy zakończy swoją pracę.
Inną rzeczą, którą może zrobić agent kluczowy, jest zezwolenie GPG działającej na zdalnym komputerze na uzyskanie kluczy w lokalnym agencie (który może załadować je z lokalnego pliku i poprosić o podanie hasła). Gpg-agent nie może tego jeszcze zrobić, jest to zaplanowana funkcja . SSH ma przekazywanie agentów od bardzo dawna. (Jest to powód, dla którego nie należy używać agenta gpg dla kluczy SSH).
GPG 1.x lub 2.0.x wie, że agent działa, ponieważ GPG_AGENT_INFO
zmienna jest ustawiona. Ta zmienna zawiera lokalizację gniazda do komunikacji z agentem, a także identyfikator procesu agenta. GPG 2.1 zawsze umieszcza gniazdo agenta ~/.gnupg
. GPG 2.x zawsze uruchamia proces agenta, jeśli nie jest uruchomiony.
Agenta można uruchomić po prostu przez uruchomienie gpg-agent
. Jeśli chcesz zachować proces agenta jako część sesji, możesz zastąpić wywołanie menedżera sesji przez gpg-agent my-session-manager
; niektóre dystrybucje konfigurują to automatycznie. GPG automatycznie uruchomi agenta, a GPG 2.1 dodatkowo znajdzie działającego agenta bez potrzeby używania zmiennej środowiskowej, więc nie musisz go uruchamiać w ten sposób, chyba że używasz starszej wersji GPG lub używasz agenta do przechowywania innych typów kluczy takich jak SSH.
Możesz wysyłać polecenia agenta za pomocą gpg-connect-agent
polecenia powłoki. Wyślij kill
polecenie, aby zabić proces agenta (lub wyślij mu sygnał).
Agent Gpg jest dostarczany z samym GPG. Niektóre dystrybucje pakują go osobno.