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.


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.