Die GPG-Datei kann nicht mit Emacs entschlüsselt werden, aber die Befehlszeile GPG funktioniert

11

Ich habe eine accounts.org.gpgDatei. Ich kann es mit gpg direkt öffnen:

$ gpg -d ./accounts.org.gpg 

You need a passphrase to unlock the secret key for
user: "Omair Majid <removed@removed>"
4096-bit RSA key, ID 7CC8AAC6, created 2012-01-18 (main key ID 66484681)

gpg: encrypted with 4096-bit RSA key, ID 7CC8AAC6, created 2012-01-18
    "Omair Majid <removed@removed>"
+TITLE: Accounts
<rest of output removed>

Aber ich kann nicht dieselbe Datei mit Emacs öffnen. Der Versuch, es in Emacs zu öffnen, gibt mir einen Fehler:

epa-file--find-file-not-found-function: Opening input file: Decryption failed, No secret key: E295ECEC7CC8AAC6

Muss ich auf der Emacs-Seite etwas konfigurieren, damit dies funktioniert?

Für einige zusätzliche Hintergrundinformationen habe ich diese Datei auf einem anderen Computer (mit derselben Version von Emacs) erstellt, auf dem Emacs diese Datei problemlos lesen / schreiben konnte. Ich habe dann den Inhalt von ~/.gnupg over auf diese Maschine kopiert . Und jetzt kann gpg es immer noch lesen, Emacs jedoch nicht.

EDIT: Könnte dies ein Unterschied zwischen gpg1 und gpg2 sein?

$ gpg2 --decrypt accounts.org.gpg 
gpg: encrypted with RSA key, ID E295ECEC7CC8AAC6
gpg: decryption failed: No secret key

Wie wurde der Emacs auf dem anderen Computer (mit derselben Konfiguration, derselben Version von Emacs (25.1) und demselben Betriebssystem (Fedora 24 x86_64, dieselbe Version von gpg- und gpg2-Paketen)) von ihm gelesen und darauf geschrieben? Wie auch immer,

(setq epg-gpg-program "/usr/bin/gpg")

Führt immer noch zum gleichen Fehler.

Omair Majid
quelle
Hast du es versucht (setq epg-gpg-program "gpg2")?
Caisah
Ich tat. Es ist auch die Standardeinstellung. Und es funktioniert nicht. Genau wie das Befehlszeilenprogramm gpg2 nicht. Ich fange an zu denken, dass dies ein Problem mit gpg2 selbst ist, überhaupt nicht mit Emacs.
Omair Majid
3
@caisah Siehe Bug # 24229 , setqfunktioniert nicht für epg-gpg-program, Sie müssen es anpassen.
npostavs

Antworten:

15

Sie sagen nicht, welches Betriebssystem oder welche Version von Emacs Sie haben.

Ich habe gestern genau das gleiche Problem in OSX und Emacs 25.1 mithilfe der Informationen über diesen Link gelöst: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

Ich habe diese Befehle ausgeführt:

brew unlink gnupg2 gpg-agent dirmngr
brew uninstall gnupg2 gpg-agent dirmngr
brew install gnupg21
ln -s /usr/local/bin/gpg2 /usr/local/bin/gpg

und stelle den pinentry-Modus in meiner emacs conf-Datei ein:

(setf epa-pinentry-mode 'loopback)
Heikki
quelle
Bitte beachten Sie meine Änderungen für OS- und Emacs-Versionen. Ich habe definitiv nicht vor, die Systemversionen von gpg / gpg2 zu überschreiben.
Omair Majid
Das Standard-Brühpaket gnupg ist seit einiger Zeit Version 2.1. Ältere Versionen 1.4 und 2.0, die nicht vollständig damit kompatibel sind, sind als separate Pakete erhältlich.
Heikki
Nur eine Info: Ich hatte ein ähnliches Problem unter Linux und diese Lösung hat auch mein Problem behoben.
Manoel Vilela
2
Vielen Dank für den Hinweis auf den (setf epa-pinentry-mode 'loopback)Trick.
Phs
1
Das Hinzufügen der (setf epa-pinentry-mode 'loopback)Zeile in .emacs war ausreichend für meine Gnu Emacs 26.2 mit gpg 2.2.16 von Homebrew.
Dave X