Wie kann ich gpg-agent dazu bringen, die Passphrasen zwischenzuspeichern, die ich beim Lesen / Speichern von * .gpg-Dateien eingebe?

9

Ich möchte gpgmit Emacs mit verschlüsselten Dateien arbeiten und möchte die Passphrase für jede verschlüsselte Datei nur einmal pro Emacs-Sitzung eingeben können.

Früher konnte ich dies tun, indem ich die Variable epa-file-cache-passphrase-for-symmetric-encryptionauf setzte t, aber das funktioniert nicht mehr. Die Erklärung finden Sie in der letzten Zeile der Dokumentation zur Variablen epa-file-cache-passphrase-for-symmetric-encryption:

(defcustom epa-file-cache-passphrase-for-symmetric-encryption nil
  "If non-nil, cache passphrase for symmetric encryption.

For security reasons, this option is turned off by default and
not recommended to use.  Instead, consider using gpg-agent which
does the same job in a safer way.  See Info node `(epa) Caching
Passphrases' for more information.

Note that this option has no effect if you use GnuPG 2.0."
  :type 'boolean
  :group 'epa-file)

Nach einem kürzlich durchgeführten Systemupdate ist die gpgVersion 2.1.8 in meinem System jetzt epa-file-cache-passphrase-for-symmetric-encryptionunwirksam.

Die in der obigen Dokumentation erwähnten Verweise führen zu einer Seite, auf der Sie nur noch einmal zur Verwendung aufgefordert werden gpg-agent, aber nichts darüber, wie dies zu tun ist. Ich konnte keine klaren Anweisungen zum Einrichten gpg-agentfür den Anwendungsfall finden, den ich zu Beginn dieses Beitrags beschrieben habe. Jede Hilfe wäre dankbar.

FWIW, pssagt mir, dass /usr/bin/gpg-agent --superviseddas tatsächlich läuft. Was muss ich noch tun, damit die Passphrasen, die ich bei der Arbeit mit *.gpgDateien eingebe, zwischengespeichert werden?

Außerdem epg-gpg-programlautet der Wert meiner Variablen /usr/bin/gpg, der sich auf die gpgzuvor erwähnte installierte Instanz der Version 2.1.8 bezieht .

Die von mir verwendeten Emacs-Versionen sind 26.0.50 und 27.0.50. In beiden Fällen ist die Version des epaPakets 23.1.

kjo
quelle
Sie können das pinentryPaket gemäß dieser Antwort verwenden :
Felipe Lema
@FelipeLema: Bei Verwendung von pinentry wurde geändert, dass die Passwörter beim Öffnen der Datei zur Entschlüsselung gespeichert werden, aber ich muss sie beim Speichern noch zweimal zur Verschlüsselung eingeben. :-(
Weidenrinde

Antworten:

4

https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options

In dieser Dokumentation finden Sie die Optionen, an denen Sie interessiert sein könnten

  • default-cache-ttl n, Legt die Gültigkeitsdauer eines Cache-Eintrags auf n Sekunden fest. Der Standardwert beträgt 600 Sekunden. Bei jedem Zugriff auf einen Cache-Eintrag wird der Timer des Eintrags zurückgesetzt. Verwenden Sie max-cache-ttl, um die maximale Lebensdauer eines Eintrags festzulegen. Beachten Sie, dass eine zwischengespeicherte Passphrase möglicherweise nicht sofort aus dem Speicher entfernt wird, wenn kein Client eine Cache-Operation anfordert. Dies ist auf eine interne Reinigungsfunktion zurückzuführen, die nur alle paar Sekunden ausgeführt wird.
  • max-cache-ttl n Legen Sie die maximale Gültigkeitsdauer eines Cache-Eintrags auf n Sekunden fest. Nach dieser Zeit läuft ein Cache-Eintrag ab, auch wenn kürzlich auf ihn zugegriffen wurde oder er mit der gpg-Preset-Passphrase festgelegt wurde. Der Standardwert beträgt 2 Stunden (7200 Sekunden).

Sie können dies in der Konfigurationsdatei ~ / .gnupg / gpg-agent.conf festlegen

z.B: default-cache-ttl 86400

Scheint, dass gpg-agent das Zwischenspeichern von Passwörtern für die gesamte Sitzung nicht unterstützt

junnu
quelle
Danke, aber das funktioniert bei mir nicht. Selbst nach der Neukonfiguration (mit langen Cache-Zeiten) und dem Neustart werde gpg-agentich jedes Mal, wenn ich versuche, eine Datei zu speichern, zur Eingabe meiner Passphrase ( zweimal ) aufgefordert *.gpg.
Kjo
Können Sie bestätigen, ob das Caching beim Entschlüsseln im Terminal funktioniert?
Juni
Das Caching funktioniert beim Entschlüsseln sowohl innerhalb von Emacs als auch vom Terminal aus. Das Problem tritt auf, wenn ich versuche, eine Datei zu speichern*.gpg (nachdem ich einige Änderungen daran vorgenommen habe). Dann werde ich immer zweimal zur Eingabe meiner Passphrase aufgefordert . (Übrigens ist dies ein relativ neues Verhalten. Früher funktionierte das Caching sowohl zum Entschlüsseln als auch zum Verschlüsseln von Emacs.) Ebenso funktioniert das Caching nicht, wenn ich versuche, Inhalte --symmetricvom Terminal aus zu verschlüsseln .
kjo
Ich zögere es, das Kopfgeld hier zu vergeben, da Ihre Antwort mein Problem nicht gelöst hat und auf jeden Fall nicht so detailliert war, wie ich erwartet hatte.
Kjo
okay .. keine Probleme .. ich habe keine Dokumentation gefunden, in der gpg-agent für die Verwendung des zwischengespeicherten Passworts für die symmetrische Verschlüsselung erwähnt wird .. und hier reddit.com/r/emacs/comments/5skzsu/… wird erwähnt, dass "GnuPG 2 unterstützt absichtlich (von seinen Entwicklern und vom EPA / EPG-Entwickler) keine Caching-Passphrasen. Installieren Sie GnuPG 1. Es ist nicht mit der Emacs-Version verwandt. " aber keine manuelle Referenz hier erwähnt .. wenn möglich könnten Sie andere Lösungen versuchen, die Caching von Emacs Seite beinhalten könnten ..
Juni