Jak mogę zrestartować gpg-agent?

67

Niektóre zmiany w konfiguracji GnuPG wymagają gpg-agentponownego uruchomienia / ponownego uruchomienia, ale ... Jak mogę to zrobić? Próbowałem gpg-agent restart, service gpg-agent restartale mi się nie udało.

Felipe
źródło

Odpowiedzi:

99

Przy obecnym GPG (2.1+), aby przestać gpg-agent korzystać gpgconf --kill, możesz :

gpgconf --kill gpg-agent

Nie trzeba ręcznie go ponownie uruchamiać. GPG uruchomi go ponownie, gdy będzie to potrzebne.

sidehowbarker
źródło
6
Są przypadki, w których chcesz uruchomić agenta ręcznie, np. Gdy używasz go z włączoną obsługą ssh. Agent NIE uruchomi się automatycznie przy próbie logowania ssh.
hasufell
1
Jeśli kiedykolwiek usuniesz ~/.gnupgkatalog, będziesz musiał ręcznie zrestartować agenta gpg.
Christopher Martin
21

Mój preferowany sposób to gpg-connect-agent reloadagent /bye. Zobacz gpg-connect-agent help /byepełną listę poleceń.

ben
źródło
10

gpg-agentnie jest usługą ogólnosystemową, ale jest uruchamiana raz na użytkownika (dlatego nie jest zarządzana przez service). Chociaż czasami wywoływane przez pliki dot użytkownika lub przynajmniej w Debianie i pochodnych, także gdy X11 jest uruchomiony (i gpg-agentjest zainstalowany) w /etc/X11/Xsession.d/90gpg-agent(aby upewnić się, że gpg-agentwszystkie wywołania GnuPG są wspólne , bez względu na to, czy są to aplikacje terminalowe czy GUI); jest również uruchamiany automatycznie przez GnuPG, gdy jest to wymagane. Od man gpg-agent:

Agent jest automatycznie uruchamiany na żądanie przez gpg, gpgsm, gpgconf lub gpg-connect-agent. Dlatego nie ma powodu, aby uruchamiać go ręcznie. Jeśli chcesz użyć dołączonego Bezpiecznego agenta powłoki, możesz uruchomić agenta przy użyciu:

gpg-connect-agent /bye

Zwykle proste killall gpg-agent(z powłoki innej niż root) powinno wystarczyć do zakończenia gpg-agent. Następnym razem zauważysz niewielkie opóźnienie przy korzystaniu z GnuPG, ponieważ gpg-agentzostało ono ponownie uruchomione.

Jens Erat
źródło
2
Zmienia się to w GPG 2.1.x, a proces jest obsługiwany przez dirmngr. Następnie uruchamiane są polecenia, dirmngr --shutdowna dirmngr --daemonczasem dodatkowe opcje (dołączam także określony homedir GPG i --use-torflagę).
Ben
1

Z mojego doświadczenia wynika, że ​​w niektórych przypadkach gpg nie uruchomi nowego agenta gpg (importujesz nowy klucz?).

Zabij starego agenta w następujący sposób:

GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent

a następnie uruchom nowy:

gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon

Wyraźne ustawienie opcji --homedir podczas uruchamiania zapewnia, że ​​twoja lista ps jest jasna, gdy masz więcej niż jeden homedir; i jest to podobne do tego, co robi gpg, kiedy go uruchamia.

Ustawienie GNUPGHOME podczas zatrzymywania nie jest konieczne, ale może sprawić, że ty lub osoba recenzująca kod będzie bardziej komfortowa.

Ben Hyde
źródło