GnuPG/Agent: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „  “ durch „ “
K Textersetzung - „= Umgebungsvariablen =“ durch „= Umgebung =“
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''GnuPG-Agent''' - Hintergrundprogramm für gecachte Passwörter
 
== Beschreibung ==
== Beschreibung ==
== Installation ==
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)
== Anwendungen ==
* 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
=== Fehlerbehebung ===
* Die zweite wichtige Aufgabe von gpg-agent bei GnuPG 2.0.x ist der Zugriff auf Smartcards
== Syntax ==
 
=== Optionen ===
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
=== Parameter ===
* Ein Beispiel: Über den Befehl <code>gpg-agent --daemon thunderbird</code> wird der Mailclient [[Mozilla Thunderbird|Thunderbird]] gestartet, und zwar mit der Umgebungsvariable <code>GnuPG_AGENT_INFO</code>
=== Umgebungsvariablen ===
* Diese enthält eine Zeichenkette wie <code>/tmp/gpg-xY9Q7R/S.gpg-agent:2244:1</code> (Pfad des Socket, PID von gpg-agent (wird ignoriert) und Versionsnummer des Protokolls)
=== Exit-Status ===
* Hierdurch kann das Mailprogramm Kontakt mit dem jeweiligen gpg-agent aufnehmen und ihm den Umgang mit den privaten Schlüsseln (und deren Passphrase) überlassen
== Konfiguration ==
 
=== Dateien ===
Bei den meisten unixoiden Desktopumgebungen wird der gpg-agent gleich beim Start aktiviert
== Sicherheit ==
* Dadurch, dass das Startscript der Desktopumgebung diese Umgebungsvariable exportiert, haben alle Programme Zugriff darauf
== Dokumentation ==
* Wenn gpg-agent nicht läuft (oder nicht gefunden wird), wird es von gpg, gpgsm und gpgconf automatisch gestartet
=== RFC ===
* Zugriff auf einen laufenden gpg-agent kann man in der Konsole über das Programm ''gpg-connect-agent'' bekommen
=== Man-Pages ===
* Mit dem Server kann man dann über das textbasierte Assuan-Protokoll kommunizieren
=== Info-Pages ===
* 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.&nbsp;a
== Siehe auch ==
* festgelegt, über welchen Zeitraum eine Passphrase gecacht wird
== Links ==
 
=== Projekt ===
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)
=== Weblinks ===
* GnuPG legt die Passphrase eines Schlüssels unter dessen Fingerprint ab (ggf
=== Einzelnachweise ===
* dem des betroffenen Unterschlüssels):
<references />
 
== Testfragen ==
> gpg-connect-agent "GET_PASSPHRASE --data --no-ask 4F7E9F723D197D667842AE115F048E6F0E4B4494 t1 t2 t3" /bye
<div class="toccolours mw-collapsible mw-collapsed">
D fubar
''Testfrage 1''
OK
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


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.&nbsp;so läuft, dass es unmittelbar verwendet werden kann):


= TMP =
# gpg-connect-agent /bye
Hintergrundprogramm für gecachte Passwörter.
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.&nbsp;B.&nbsp;[[pinentry-curses|pinentry-curses]] für die jeweilige Desktop-Umgebung benötigt
Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z.&nbsp;B.&nbsp;[[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
|-
|-
| --daemon || Normaler Aufruf, um den Dämon zu starten.
| --daemon || Normaler Aufruf, um den Dämon zu starten
|-
|-
| --ignore-cache-for-signing || Erzwingt eine erneute Passworteingabe, um andere Schlüssel zu signieren.
| --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.
| --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).
| --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.
| --pinentry-program filename || Setzt explizit das Passworteingabeprogramm auf filename
|}
|}


= Links =
=== Parameter ===
== Interne Links ==
=== Umgebung ===
# [[GPG]]
=== Rückgabewert ===
# [[pinentry-curses]]
== Anwendung ==
== Weblinks ==
=== Fehlerbehebung ===
# https://wiki.ubuntuusers.de/GPG-Agent/
== Konfiguration ==
# https://wiki.ubuntuusers.de/GnuPG/
=== Dateien ===
<noinclude>


[[Kategorie:Kryptografie]]
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
----
* [[GnuPG]]
* [[pinentry-curses]]


= TMP =
==== Sicherheit ====
== gpg-agent ==
==== Dokumentation ====
{{überarbeiten}}
===== RFC =====
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).
===== Man-Pages =====
* 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.
==== Links ====
* Ein Beispiel: Über den Befehl <code>gpg-agent --daemon thunderbird</code> wird der Mailclient [[Mozilla Thunderbird|Thunderbird]] gestartet, und zwar mit der Umgebungsvariable <code>GPG_AGENT_INFO</code>.  
===== Projekt =====
* Diese enthält eine Zeichenkette wie <code>/tmp/gpg-xY9Q7R/S.gpg-agent:2244:1</code> (Pfad des Socket, PID von gpg-agent (wird ignoriert) und Versionsnummer des Protokolls).
===== Weblinks =====
* Hierdurch kann das Mailprogramm Kontakt mit dem jeweiligen gpg-agent aufnehmen und ihm den Umgang mit den privaten Schlüsseln (und deren Passphrase) überlassen.
# https://wiki.ubuntuusers.de/GnuPG-Agent/
 
# https://wiki.ubuntuusers.de/GnuPG/
Bei den meisten unixoiden Desktopumgebungen wird der gpg-agent gleich beim Start aktiviert.
</noinclude>
* Dadurch, dass das Startscript der Desktopumgebung diese Umgebungsvariable exportiert, haben alle Programme Zugriff darauf.
[[Kategorie:GnuPG]]
* 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<ref>[http://www.gnupg.org/documentation/manuals/gnupg/Agent-Protocol.html Beschreibung des Assuan-Protokolls auf der GnuPG-Webseite]</ref> 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.&nbsp;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

Aktuelle Version vom 8. September 2024, 11:32 Uhr

GnuPG-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 Umgebungsvariable GnuPG_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 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

Umgebung

Rückgabewert

Anwendung

Fehlerbehebung

Konfiguration

Dateien

Anhang

Siehe auch


Sicherheit

Dokumentation

RFC
Man-Pages

Links

Projekt
Weblinks
  1. https://wiki.ubuntuusers.de/GnuPG-Agent/
  2. https://wiki.ubuntuusers.de/GnuPG/