Impossibile decrittografare il file .gpg utilizzando emacs ma la riga di comando gpg funziona


12

Ho un accounts.org.gpgfile Posso aprirlo usando direttamente gpg:

$ 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>

Ma non riesco ad aprire lo stesso file usando Emacs. Cercare di aprirlo in emacs mi dà un errore:

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

C'è qualcosa che devo configurare sul lato emacs per farlo funzionare?

Per qualche ulteriore sfondo, ho creato questo file su un'altra macchina (usando la stessa versione di Emacs), su cui Emacs poteva leggere / scrivere su quel file proprio bene. Ho quindi copiato il contenuto di ~/.gnupg questa macchina. E ora gpg può ancora leggerlo, ma Emacs no.

EDIT: potrebbe essere una differenza gpg1 vs gpg2?

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

In che modo Emacs sull'altra macchina (usando la stessa configurazione, la stessa versione di Emacs (25.1) e lo stesso sistema operativo (Fedora 24 x86_64, stessa versione dei pacchetti gpg e gpg2)) ha letto e scritto su di esso. Comunque usando,

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

Risultati ancora nello stesso errore.


Ci hai provato (setq epg-gpg-program "gpg2")?
caisah

L'ho fatto. È anche l'impostazione predefinita. E non funziona. Proprio come il programma da riga di comando gpg2 no. Sto iniziando a pensare che questo sia un problema con gpg2 stesso, non con emacs.
Omair Majid,

3
@caisah Vedi Bug # 24229 , setqnon funziona epg-gpg-program, devi personalizzarlo.
npostavs,

Risposte:


15

Non dici quale sistema operativo né versione di emacs hai.

Ieri ho risolto esattamente lo stesso problema in OSX ed emacs 25.1 usando le informazioni da questo link: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

Ho eseguito questi comandi:

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

e imposta la modalità pinentry nel mio file conf emacs:

(setf epa-pinentry-mode 'loopback)

Si prega di consultare le mie modifiche per le versioni OS ed Emacs. Sicuramente non ho intenzione di sostituire le versioni di sistema di gpg / gpg2.
Omair Majid,

Il pacchetto standard brew gnupg è da qualche tempo la versione 2.1. Le versioni precedenti 1.4 e 2.0 che non sono completamente compatibili con essa sono disponibili come pacchetti separati.
Heikki,

Solo un'informazione: ho avuto un problema simile su Linux e questa soluzione ha risolto anche il mio problema.
Manoel Vilela,

2
Grazie per aver sottolineato il (setf epa-pinentry-mode 'loopback)trucco.
phs

1
Aggiungere la (setf epa-pinentry-mode 'loopback)linea in .emacs è stato sufficiente per il mio Gnu Emacs 26.2 con gpg 2.2.16 da homebrew.
Dave X,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.