Ich habe eine Zeile in meiner Datei gpg.conf, in der use-agent
steht.
Ich verstehe, dass sich dies bezieht zu gpg-agent, der ein Daemon ist. In der Manpage heißt es: „gpg-agent ist ein Daemon zum Verwalten geheimer (privater) Schlüssel unabhängig von einem Protokoll. Er wird als Backend für gpg und gpgsm sowie für einige andere Dienstprogramme verwendet.“
Kann jemand erklären, was dies im Zusammenhang mit gpg bedeutet? Was ist der Sinn von gpg-agent?
Ich habe derzeit GPG 1.4.
- Wie kann ich feststellen, ob der Agent ausgeführt wird? Mir ist eigentlich nicht einmal klar, ob gpg-agent mit dem Basispaket GPG 1.4 installiert ist.
- Wie kann ich es starten, wenn es nicht ausgeführt wird?
- Wie kann ich Stoppen Sie es, wenn es ausgeführt wird?
Antwort
Gpg-agent ist ein Programm, das im Hintergrund ausgeführt wird (ein -Dämon ) und speichert geheime GPG-Schlüssel im Speicher. Wenn ein GPG-Prozess den Schlüssel benötigt, kontaktiert er das laufende gpg-agent-Programm über eine Socket und fordert den Schlüssel an. Wenn der Agentenprozess den Schlüssel hat, stellt er ihn gpg zur Verfügung. Wenn dies nicht der Fall ist, versucht er, den verschlüsselten Schlüssel von Ihrem Schlüsselbund zu laden, und fordert Sie zur Eingabe der Passphrase des Schlüssels auf. Sobald der Agent den entschlüsselten Schlüssel erhalten hat, übergibt er ihn an den gpg-Prozess. Zusätzlich zu den GPG-Schlüsseln kann der Gpg-Agent auf ähnliche Weise SSH-Schlüssel speichern und sie SSH-Prozessen wie dem ssh-agent
Programm, das mit SSH geliefert wird.
Der Hauptgrund für die Verwendung eines Schlüsselagenten ist, dass Sie Sie müssen Ihre Passphrase nicht jedes Mal eingeben, wenn Sie Ihren Schlüssel verwenden. Der Agent speichert den Schlüssel von einem Zeitpunkt zum nächsten. GPG selbst kann dies nicht tun, da der Prozess beendet wird, sobald er seine Arbeit erledigt hat.
Ein anderer Schlüsselagent kann GPG, das auf einem Remotecomputer ausgeführt wird, erlauben, Schlüssel im lokalen Agenten abzurufen ( die sie möglicherweise aus einer lokalen Datei laden und zur Eingabe Ihrer Passphrase auffordern). Gpg-Agent kann dies noch nicht tun, es ist eine geplante Funktion . SSH hat die Weiterleitung von Agenten seit sehr langer Zeit. (Dies ist ein Grund, dies nicht zu tun Verwenden Sie gpg-agent für SSH-Schlüssel.)
GPG 1.x oder 2.0.x weiß, dass der Agent ausgeführt wird, da die Variable GPG_AGENT_INFO
festgelegt ist. Diese Variable Enthält den Speicherort des Sockets für die Kommunikation mit dem Agenten sowie die Prozess-ID des Agenten. GPG 2.1 platziert den Agenten-Socket immer in ~/.gnupg
. GPG 2.x startet immer einen Agenten Prozess, wenn einer nicht ausgeführt wird.
Sie können den Agenten einfach starten, indem Sie gpg-agent
ausführen. Wenn Sie einen Agentenprozess als Teil Ihrer Sitzung beibehalten möchten, können Sie den Aufruf Ihres Sitzungsmanagers durch gpg-agent my-session-manager
ersetzen. Einige Distributionen richten dies automatisch ein. GPG startet den Agenten automatisch und GPG 2.1 findet zusätzlich einen laufenden Agenten, ohne dass eine Umgebungsvariable erforderlich ist. Sie müssen ihn also nicht auf diese Weise starten, es sei denn, Sie verwenden eine ältere Version von GPG oder verwenden den Agenten zum Speichern anderer Typen von Schlüsseln wie SSH.
Sie können die Agentenbefehle mit gpg-connect-agent
Shell-Befehl. Senden Sie den Befehl kill
an Beenden Sie den Agentenprozess (oder senden Sie ihm ein Signal).
Der Gpg-Agent wird mit GPG selbst geliefert. Einige Distributionen verpacken ihn separat.
Kommentare
- " Wenn ein GPG-Prozess den Schlüssel benötigt, kontaktiert er das laufende gpg-agent-Programm über einen Socket und fordert den Schlüssel an. Wenn der Agent-Prozess den Schlüssel hat, Es stellt es gpg zur Verfügung. " Leicht irreführend. Der Agent stellt keinen Schlüssel für den Client-Prozess bereit. Stattdessen wird er ausgeführt Orms-Aktionen mit dem Schlüssel im Namen des Client-Prozesses. (Der Client stellt dem Agenten etwas zum Signieren, Verschlüsseln oder Entschlüsseln zur Verfügung, und der Agent tut dies.) Wenn Sie einen Agenten verwenden, erhält Ihre SSH- und GPG-Client-Software niemals Zugriff auf den eigentlichen Schlüssel.
- " Gpg-Agent kann ' dies noch nicht tun, es ist eine geplante Funktion. SSH hat schon sehr lange Agentenweiterleitungen. (Dies ist ein Grund, gpg-agent nicht für SSH-Schlüssel zu verwenden.) " Nicht ganz richtig. gpg-agent funktioniert gut mit der Weiterleitung von SSH-Agenten. Ich benutze es jeden Tag. Der SSH-Client übernimmt die Weiterleitung, der GPG-Agent ist daran nicht wirklich beteiligt. Was nicht unterstützt wird, ist, dass GPG selbst remote mit einem Agenten kommuniziert.