GnuPG/Agent: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
'''GPG-Agent'' - Hintergrundprogramm für gecachte Passwörter. | '''GPG-Agent'' - Hintergrundprogramm für gecachte Passwörter. | ||
== Beschreibung == | == Beschreibung == | ||
Wie der ssh-agent (bei [[OpenSSH]]) dient der gpg-agent, der seit GnuPG 2.0.x integraler Bestandteil ist, unter anderem dazu, die Passphrase für einen konfigurierbaren Zeitraum im Arbeitsspeicher zu halten, sodass eine erneute Eingabe entfällt; gpg-agent speichert die Passphrase aber nicht nur, sondern übernimmt auch ihre Abfrage vom Anwender (über ein konfigurierbares Hilfsprogramm). | Wie der ssh-agent (bei [[OpenSSH]]) dient der gpg-agent, der seit GnuPG 2.0.x integraler Bestandteil ist, unter anderem dazu, die Passphrase für einen konfigurierbaren Zeitraum im Arbeitsspeicher zu halten, sodass eine erneute Eingabe entfällt; gpg-agent speichert die Passphrase aber nicht nur, sondern übernimmt auch ihre Abfrage vom Anwender (über ein konfigurierbares Hilfsprogramm). | ||
* Anders als bei OpenSSH ist der gpg-agent allerdings ab Version 2 von GnuPG zwingender Bestandteil; in der künftigen Version 2.1 werden sogar alle Operationen, die private Schlüssel beinhalten, an gpg-agent ausgelagert, was es ermöglicht, die Schlüssel auf einem anderen Rechner zu speichern und nur noch indirekt zu verwenden. | * Anders als bei OpenSSH ist der gpg-agent allerdings ab Version 2 von GnuPG zwingender Bestandteil; in der künftigen Version 2.1 werden sogar alle Operationen, die private Schlüssel beinhalten, an gpg-agent ausgelagert, was es ermöglicht, die Schlüssel auf einem anderen Rechner zu speichern und nur noch indirekt zu verwenden. | ||
Zeile 67: | Zeile 35: | ||
gpg-connect-agent: can't connect to the agent: IPC "connect" Aufruf fehlgeschlagen | gpg-connect-agent: can't connect to the agent: IPC "connect" Aufruf fehlgeschlagen | ||
=Funktion= | == Funktion == | ||
*Das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird. | *Das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird. | ||
*Speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach. | *Speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach. | ||
=Installation= | |||
== Installation == | |||
Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z. B. [[pinentry-curses|pinentry-curses]] für die jeweilige Desktop-Umgebung benötigt | Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z. B. [[pinentry-curses|pinentry-curses]] für die jeweilige Desktop-Umgebung benötigt | ||
# apt install gnupg-agent pinentry-curses | # apt install gnupg-agent pinentry-curses | ||
=Optionen= | == Syntax == | ||
=== Optionen === | |||
{|class="wikitable" | {|class="wikitable" | ||
!Option !! Beschreibung | !Option !! Beschreibung | ||
Zeile 91: | Zeile 60: | ||
|} | |} | ||
= | === Parameter === | ||
== | === Umgebungsvariablen === | ||
=== Exit-Status === | |||
== Anwendung == | |||
== Weblinks == | === Fehlerbehebung === | ||
== Konfiguration == | |||
=== Dateien === | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
---- | |||
* [[GPG]] | |||
* [[pinentry-curses]] | |||
==== Sicherheit ==== | |||
==== Dokumentation ==== | |||
===== RFC ===== | |||
{| class="wikitable sortable options" | |||
|- | |||
! RFC !! Titel | |||
|- | |||
| [https://www.rfc-editor.org/rfc/0000 0000] || | |||
|} | |||
===== Man-Pages ===== | |||
===== Info-Pages ===== | |||
==== Links ==== | |||
===== Projekt ===== | |||
===== Weblinks ===== | |||
# https://wiki.ubuntuusers.de/GPG-Agent/ | # https://wiki.ubuntuusers.de/GPG-Agent/ | ||
# https://wiki.ubuntuusers.de/GnuPG/ | # https://wiki.ubuntuusers.de/GnuPG/ |
Version vom 18. Februar 2024, 12:05 Uhr
'GPG-Agent - Hintergrundprogramm für gecachte Passwörter.
Beschreibung
Wie der ssh-agent (bei OpenSSH) dient der gpg-agent, der seit GnuPG 2.0.x integraler Bestandteil ist, unter anderem dazu, die Passphrase für einen konfigurierbaren Zeitraum im Arbeitsspeicher zu halten, sodass eine erneute Eingabe entfällt; gpg-agent speichert die Passphrase aber nicht nur, sondern übernimmt auch ihre Abfrage vom Anwender (über ein konfigurierbares Hilfsprogramm).
- Anders als bei OpenSSH ist der gpg-agent allerdings ab Version 2 von GnuPG zwingender Bestandteil; in der künftigen Version 2.1 werden sogar alle Operationen, die private Schlüssel beinhalten, an gpg-agent ausgelagert, was es ermöglicht, die Schlüssel auf einem anderen Rechner zu speichern und nur noch indirekt zu verwenden.
- Die zweite wichtige Aufgabe von gpg-agent bei GnuPG 2.0.x ist der Zugriff auf Smartcards.
Der Kontakt zu einer Instanz von gpg-agent, die nicht den Standardsocket verwendet (es können mehrere gleichzeitig laufen, was aber meist nicht sinnvoll ist), wird über eine Umgebungsvariable ermöglicht.
- Ein Beispiel: Über den Befehl
gpg-agent --daemon thunderbird
wird der Mailclient Thunderbird gestartet, und zwar mit der UmgebungsvariableGPG_AGENT_INFO
. - Diese enthält eine Zeichenkette wie
/tmp/gpg-xY9Q7R/S.gpg-agent:2244:1
(Pfad des Socket, PID von gpg-agent (wird ignoriert) und Versionsnummer des Protokolls). - Hierdurch kann das Mailprogramm Kontakt mit dem jeweiligen gpg-agent aufnehmen und ihm den Umgang mit den privaten Schlüsseln (und deren Passphrase) überlassen.
Bei den meisten unixoiden Desktopumgebungen wird der gpg-agent gleich beim Start aktiviert.
- Dadurch, dass das Startscript der Desktopumgebung diese Umgebungsvariable exportiert, haben alle Programme Zugriff darauf.
- Wenn gpg-agent nicht läuft (oder nicht gefunden wird), wird es von gpg, gpgsm und gpgconf automatisch gestartet.
- Zugriff auf einen laufenden gpg-agent kann man in der Konsole über das Programm gpg-connect-agent bekommen.
- Mit dem Server kann man dann über das textbasierte Assuan-Protokoll[1] kommunizieren.
- Man kann gpg-agent daher auch unabhängig von OpenPGP und OpenSSH zur Verwaltung von Passphrasen für eigene Programme nutzen. Über die Konfigurationsdatei gpg-agent.conf wird u. a.
- festgelegt, über welchen Zeitraum eine Passphrase gecacht wird.
Man kann nicht direkt abfragen, welche Einträge gpg-agent gerade speichert, aber man kann testen, ob ein konkreter Eintrag vorhanden ist (und sich den auch anzeigen lassen).
- GnuPG legt die Passphrase eines Schlüssels unter dessen Fingerprint ab (ggf.
- dem des betroffenen Unterschlüssels):
> gpg-connect-agent "GET_PASSPHRASE --data --no-ask 4F7E9F723D197D667842AE115F048E6F0E4B4494 t1 t2 t3" /bye D fubar OK
Ebenso kann man eine Passphrase setzen, sodass sie nicht vom Anwender abgefragt werden muss (etwa bei automatisierten Prozessen).
- Dafür gibt es sogar eine eigene Anwendung: gpg-preset-passphrase.
Mit gpg-connect-agent kann man auch auf einfache Weise testen, ob gpg-agent überhaupt läuft (bzw. so läuft, dass es unmittelbar verwendet werden kann):
# gpg-connect-agent /bye gpg-connect-agent: can't connect to the agent: IPC "connect" Aufruf fehlgeschlagen
Funktion
- Das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird.
- Speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach.
Installation
Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z. B. pinentry-curses für die jeweilige Desktop-Umgebung benötigt
# apt install gnupg-agent pinentry-curses
Syntax
Optionen
Option | Beschreibung |
---|---|
--daemon | Normaler Aufruf, um den Dämon zu starten. |
--ignore-cache-for-signing | Erzwingt eine erneute Passworteingabe, um andere Schlüssel zu signieren. |
--default-cache-ttl n | Setzt die Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 600. |
--max-cache-ttl n | Setzt die maximale Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 7200 (2 Stunden). |
--pinentry-program filename | Setzt explizit das Passworteingabeprogramm auf filename. |
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Fehlerbehebung
Konfiguration
Dateien
Anhang
Siehe auch
Sicherheit
Dokumentation
RFC
RFC | Titel |
---|---|
0000 |