Halten Sie GnuPG-Anmeldeinformationen für die gesamte Benutzersitzung im Cache

53

Mit GnuPG kann der gpg-agentZugriff auf einen privaten Schlüssel zwischengespeichert werden. Wie kann ich diesen Cache für die gesamte Benutzersitzung aktiv halten ?

Wenn ich den Schlüssel für entsperre gpg-agent, bleibt er nur für eine begrenzte Zeit im Cache. Mit dem SSH-Agenten gebe ich die Passphrase einmal ein und sie bleibt für die gesamte Sitzung im Cache. Ich möchte dasselbe Verhalten von gpg-agent.

Leidet ssh-agentalso nicht unter einer begrenzten Cache-Lebensdauer. Aber gpg-agentbegrenzt die Cache - Lebensdauer, zumindest in der Standardeinstellung. Wie kann ich die Grenze für Cache - Zeit beseitigen aus gpg-agent?

große Nase
quelle

Antworten:

69

Bis zu GnuPG 2

Die Benutzerkonfiguration (in ~/.gnupg/gpg-agent.conf) kann nur die Standard- und die maximale Caching-Dauer definieren. es kann nicht deaktiviert werden.

Die default-cache-ttlOption legt das Zeitlimit (in Sekunden) nach der letzten GnuPG-Aktivität fest (wird also zurückgesetzt, wenn Sie sie verwenden). Die Option legt die maximum-cache-ttlZeitspanne (in Sekunden) fest, die nach Eingabe Ihres Kennworts zwischengespeichert wird. Der Standardwert beträgt 600 Sekunden (10 Minuten) default-cache-ttlund 7200 Sekunden (2 Stunden) maximum-cache-ttl.

Stellen Sie es auf ein Jahr oder so ein - sagen wir 34560000 Sekunden (400 Tage) - und es sollte Ihnen gut gehen:

default-cache-ttl 34560000
maximum-cache-ttl 34560000

Damit diese Änderung wirksam wird, müssen Sie die Sitzung durch einen Neustart von gpg-agent beenden.

Wenn Sie die Sitzungsdauer beschränken möchten, müssen Sie den Dämon beim Abmelden beenden. Dies ist zwischen den Betriebssystemen sehr unterschiedlich, daher beziehe ich mich auf eine andere Frage / Antwort, die Hinweise für verschiedene Systeme enthält .

Sie können den Computer auch gpg-agentwährend der Anmeldung neu starten. Dies beschränkt die Caching-Zeit jedoch nicht auf die Sitzungslänge, sondern auf die Anmeldungen eines Benutzers. Entscheiden Sie selbst, ob dies in Ihrem Fall ein Problem ist.

GnuPG 2.1 und höher

In GnuPG 2.1 und höher wurde die maximum-cache-ttlOption max-cache-ttlohne weitere Änderungen in umbenannt.

Jens Erat
quelle
Handelt es sich hierbei um eine Antwort, dass Sie nicht tun können, was Sie verlangen? Es ist nicht klar, da Sie über die Begrenzung der Sitzungslänge oder die Begrenzung der Caching-Zeit sprechen. Ich möchte genau das Gegenteil davon: keine willkürliche Begrenzung der Cache-Zeit oder Sitzungslänge.
Großartige
So etwas können Sie nur umgehen, indem Sie ein ziemlich großes ttl setzen. Stellen Sie es auf ein Jahr oder so ein und Sie sollten in Ordnung sein - aber müssen die Sitzung durch einen Neustart beenden gpg-agent.
Jens Erat
Bitte beachten Sie, dass in den neuesten Versionen (mindestens gnupg 2.1) die maximum-cache-ttlOption nicht existiert. Informationen
Pablo Olmos de Aguilera C.
3
Zumindest in GnuPG 2.1 default-cache-ttlbeträgt die Standardeinstellung 600 Sekunden (10 Minuten) und nicht zwei Stunden.
3.
@jlh Auf den Manpages der verschiedenen Versionen von gpg-agentscheint der richtige Wert für alle Releases 10 Minuten zu sein. Ich habe die Antwort bearbeitet. Vielen Dank, dass Sie darauf hingewiesen haben.
Jens Erat
7

Für Windows

Die zu bearbeitende Datei sollte unter folgender Adresse abgelegt werden: $env:AppData\gnupg

Wenn Sie das in einem PowerShell-Fenster ausführen, wird es geöffnet: C:\Users\<UserName>\AppData\Roaming\gnupg

gpg-agent.confLegen Sie einfach die Datei mit den gewünschten Werten dort ab.

Sie können überprüfen, ob dies erforderlich war, indem Sie Folgendes ausführen:

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

Sie können auch diesen einen Liner verwenden: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"

CubanX
quelle
Wenn eine zweite Antwort hier nicht angemessen ist, können wir diese auf eine eigene Frage verschieben, die mit Windows getaggt ist. Nicht sicher, was richtig ist :)
CubanX
Danke und behalte es hier - schön, alle Infos an einem Ort zu haben. 👍
Barfuin
5

Stellen Sie sicher, dass Sie Ihren gpg-Agenten neu laden, gpg-connect-agent reloadagent /byenachdem Sie die Konfiguration geändert haben.

SuperSandro2000
quelle