Wie kann ich gpg-agent neu starten?

67

Einige Änderungen in der GnuPG-Konfiguration erfordern einen gpg-agentNeustart / Neustart, aber ... Wie kann ich das tun? Ich habe es versucht gpg-agent restart, service gpg-agent restartaber es ist mir nicht gelungen.

Felipe
quelle

Antworten:

99

Mit dem aktuellen GPG (2.1+) können Sie zum Beenden Folgendes gpg-agentverwenden gpgconf --kill:

gpgconf --kill gpg-agent

Sie müssen es nicht manuell neu starten. GPG startet es neu, wenn es benötigt wird.

Nebenbarker
quelle
6
Es gibt Fälle, in denen Sie den Agenten manuell starten möchten, z. B. wenn Sie ihn mit aktivierter ssh-Unterstützung verwenden. Der Agent wird NICHT automatisch gestartet, wenn Sie versuchen, sich bei ssh anzumelden.
hasufell
1
Wenn Sie das ~/.gnupgVerzeichnis jemals löschen , müssen Sie den gpg-Agenten manuell neu starten.
Christopher Martin
21

Mein bevorzugter Weg ist mit gpg-connect-agent reloadagent /bye. Siehe gpg-connect-agent help /byefür eine vollständige Liste der Befehle.

ben
quelle
10

gpg-agentist kein systemweiter Dienst, sondern wird einmal pro Benutzer gestartet (wird also nicht von verwaltet service). Obwohl manchmal von den Punktedateien des Benutzers oder zumindest in Debian und Derivaten aufgerufen, auch wenn X11 in gestartet (und gpg-agentinstalliert) wird /etc/X11/Xsession.d/90gpg-agent(um sicherzustellen, dass gpg-agentalle GnuPG-Aufrufe eine gemeinsame verwenden, egal ob von einem Terminal oder einer GUI-Anwendung); es wird bei Bedarf auch automatisch von GnuPG gestartet. Von man gpg-agent:

Der Agent wird bei Bedarf automatisch von gpg, gpgsm, gpgconf oder gpg-connect-agent gestartet. Es gibt also keinen Grund, es manuell zu starten. Wenn Sie den enthaltenen Secure Shell-Agenten verwenden möchten, können Sie den Agenten folgendermaßen starten:

gpg-connect-agent /bye

Normalerweise sollte eine einfache killall gpg-agent(von einer Nicht-Root-Shell) zum Beenden ausreichend sein gpg-agent. Wenn Sie GnuPG das nächste Mal verwenden, werden Sie wahrscheinlich eine leichte Verzögerung bemerken, da gpg-agentes erneut gestartet wird.

Jens Erat
quelle
2
Dies ändert sich in GPG 2.1.x und der Prozess wird über dirmngr abgewickelt. Den auszuführenden Befehlen dirmngr --shutdownfolgen dirmngr --daemonund manchmal zusätzliche Optionen (ich füge auch ein bestimmtes GPG-Homedir und das --use-torFlag hinzu).
Ben
1

Meiner Erfahrung nach gibt es einige Szenarien, in denen gpg einen neuen gpg-Agenten nicht starten kann (neuen Schlüssel importieren?).

Töte den alten Agenten wie folgt:

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

und dann das neue starten:

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

Das explizite Setzen von --homedir beim Start stellt sicher, dass Ihre ps-Auflistung klar ist, wenn Sie mehr als ein homedir haben. und es ist analog zu dem, was gpg macht, wenn es es startet.

Das Einstellen von GNUPGHOME beim Stoppen ist nicht erforderlich, macht es jedoch möglicherweise für Sie oder den Code-Prüfer komfortabler.

Ben Hyde
quelle