Gpg-Agent ist ein Programm, das im Hintergrund ausgeführt wird (ein Daemon ) und geheime GPG-Schlüssel im Speicher ablegt . Wenn ein GPG-Prozess den Schlüssel benötigt, kontaktiert er das laufende Programm gpg-agent über einen Socket und fordert den Schlüssel an. Wenn der Agent-Prozess den Schlüssel hat, stellt er ihn gpg zur Verfügung. Wenn dies nicht der Fall ist, wird versucht, den verschlüsselten Schlüssel von Ihrem Schlüsselbund zu laden, und Sie werden aufgefordert, die Passphrase des Schlüssels einzugeben. Sobald der Agent den entschlüsselten Schlüssel erhalten hat, übergibt er ihn an den gpg-Prozess. Zusätzlich zu GPG-Schlüsseln kann der Gpg-Agent auch SSH-Schlüssel speichern und sie für SSH-Prozesse bereitstellen, wie das ssh-agent
mit SSH gelieferte Programm.
Der Hauptgrund für die Verwendung eines Schlüsselagenten besteht darin, dass Sie Ihre Passphrase nicht jedes Mal eingeben müssen, wenn Sie Ihren Schlüssel verwenden. Der Agent speichert den Schlüssel von einem Zeitpunkt zum nächsten. GPG selbst kann das nicht, da der Prozess beendet wird, sobald er seine Arbeit erledigt hat.
Ein anderer Vorgang, den ein Schlüsselagent ausführen kann, besteht darin, dass GPG auf einem Remotecomputer Schlüssel im lokalen Agenten abruft (wodurch diese möglicherweise aus einer lokalen Datei geladen werden und zur Eingabe Ihrer Passphrase aufgefordert werden). Gpg-Agent kann dies noch nicht, es ist eine geplante Funktion . SSH hat lange Zeit eine Agentenweiterleitung. (Dies ist ein Grund, gpg-agent nicht für SSH-Schlüssel zu verwenden.)
GPG 1.x oder 2.0.x weiß, dass der Agent ausgeführt wird, weil die GPG_AGENT_INFO
Variable 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 setzt immer den Agentensocket ein ~/.gnupg
. GPG 2.x startet immer einen Agentenprozess, wenn einer nicht ausgeführt wird.
Sie können den Agenten einfach durch Ausführen starten gpg-agent
. Wenn Sie einen Agenten - Prozess als Teil der Sitzung halten möchten, können Sie den Aufruf der Session - Manager ersetzen durch gpg-agent my-session-manager
; Einige Distributionen richten dies automatisch ein. GPG startet den Agenten automatisch und GPG 2.1 findet zusätzlich einen aktiven 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 Agenten senden Befehle mit dem gpg-connect-agent
Shell - Befehl. Senden Sie den kill
Befehl , um den Agentenprozess abzubrechen (oder senden Sie ihm ein Signal).
Gpg-Agent wird mit GPG selbst ausgeliefert. Einige Distributionen packen es separat.