Mam accounts.org.gpg
plik Mogę otworzyć bezpośrednio za pomocą 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>
Ale nie mogę otworzyć tego samego pliku za pomocą Emacsa. Próba otwarcia go w emacsie powoduje błąd:
epa-file--find-file-not-found-function: Opening input file: Decryption failed, No secret key: E295ECEC7CC8AAC6
Czy jest coś, co muszę skonfigurować po stronie emacsa, aby to działało?
Dla dodatkowego tła stworzyłem ten plik na innym komputerze (używając tej samej wersji Emacsa), na którym Emacs mógł dobrze czytać / zapisywać do tego pliku. Następnie skopiowałem zawartość ~/.gnupg
over na to urządzenie. A teraz gpg nadal może to czytać, ale Emacs nie.
EDYCJA: Czy może to być różnica między gpg1 a gpg2?
$ gpg2 --decrypt accounts.org.gpg
gpg: encrypted with RSA key, ID E295ECEC7CC8AAC6
gpg: decryption failed: No secret key
W jaki sposób Emacs na drugim komputerze (przy użyciu tej samej konfiguracji, tej samej wersji Emacsa (25.1) i tego samego systemu operacyjnego (Fedora 24 x86_64, ta sama wersja pakietów gpg i gpg2)) odczytano z niego i napisano na nim. W każdym razie używając
(setq epg-gpg-program "/usr/bin/gpg")
Nadal powoduje ten sam błąd.
(setq epg-gpg-program "gpg2")
?setq
nie działaepg-gpg-program
, musisz go dostosować.Odpowiedzi:
Nie mówisz, jaki system operacyjny ani wersję emacsa posiadasz.
Wczoraj rozwiązałem dokładnie ten sam problem w OSX i emacsie 25.1, używając informacji z tego linku: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html
Uruchomiłem następujące polecenia:
i ustaw tryb pinentry w moim pliku conf emacs:
źródło
(setf epa-pinentry-mode 'loopback)
triku.(setf epa-pinentry-mode 'loopback)
linii w .emacs było wystarczające dla mojego Gnu Emacsa 26.2 z gpg 2.2.16 z homebrew.