Aktivieren der Minibuffer-Eingabe mit Emacs 25 und GnuPG 2.1 unter Ubuntu Xenial

14

Ich musste einiges tauchen und jagen durch Dokumentation und Foren, also dachte ich mir, ich könnte hier auch eine Frage und Antwort für andere machen:

Wie aktiviere ich die Aufforderung zur Eingabe von GnuPG-Passphrasen im Minibuffer? Das Emacs 25.1 Changelog sagt:

** Mit pinentry.el kann die GnuPG-Passphrase anstelle eines grafischen Dialogfelds über den Minipuffer abgefragt werden, je nachdem, ob der Befehl gpg von Emacs aus aufgerufen wird (dh, die Umgebungsvariable INSIDE_EMACS ist festgelegt). Für diese Funktion sind neuere Versionen von GnuPG (2.1.5 oder höher) und Pinentry (0.9.5 oder höher) erforderlich. Um diese Funktion zu nutzen, fügen Sie "~ / .gnupg / gpg-agent.conf" "allow-emacs-pinentry" hinzu und laden Sie die Konfiguration mit "gpgconf --reload gpg-agent" neu.

Dadurch erhalte ich nur eine Fehlermeldung und nicht einmal die grafische Passphrase-Eingabeaufforderung.

Dies ist GNU Emacs 25.2.2 unter Lubuntu (Ubuntu Xenial) mit GnuPG 2.1.11.

Oliver Scholz
quelle

Antworten:

15

Musst du auch

  1. Aktivieren Sie explizit den Loopback-Modus für die PIN-Eingabe in Ihrer gpg-agent.conf.
  2. Konfigurieren Sie epa so, dass Loopback für die PIN-Eingabe verwendet wird.
  3. Starte den Pinentry Server in Emacs,

1. Aktivieren Sie den Emacs Pinentry- und Loopback-Modus für gpg-agent

Fügen Sie dies in Ihre ~ / .gnupg / gpg-agent.conf ein:

allow-emacs-pinentry
allow-loopback-pinentry

Dann teilen Sie gpg-agent mit, dass diese Konfiguration gpgconfin einer Shell geladen werden soll :

gpgconf --reload gpg-agent

2. Konfigurieren Sie den EasyPG-Assistenten für die Verwendung von Loopback für die Pinentry

In Emacs, entweder tun

M-x customize-group RET epa RET

Stellen Sie dann "Epa Pinentry Mode" auf "Loopback" und wenden Sie an.

Oder fügen Sie dies in Ihre ~ / .emacs-Datei ein:

(setq epa-pinentry-mode 'loopback)

3. Starten Sie den PIN-Server in Emacs.

Tun Sie es in Emacs

M-x pinentry-start RET

Dies startet den Server für die aktuelle Sitzung. Um es in jeder neuen Emacs-Instanz zu starten, fügen Sie Folgendes in Ihren .emacs ein:

(pinentry-start)
Oliver Scholz
quelle
Ich habe diesen Ansatz implementiert und während er mit pass aus Emacs heraus funktioniert, kann ich pass nicht mehr über die Befehlszeile ausführen. Ist das bei Ihnen der Fall?
Orion