Emacs kullanılarak .gpg dosyasının şifresi çözülemedi, ancak komut satırı gpg çalışıyor


12

Bir accounts.org.gpgdosyam var. Doğrudan gpg kullanarak açabilirsiniz:

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

Ama aynı dosyayı Emacs kullanarak açamıyorum. Emacs'de açmaya çalışmak bana bir hata veriyor:

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

Bu işi yapmak için emacs tarafında yapılandırmam gereken bir şey var mı?

Ek bir arka plan için, bu dosyayı başka bir makinede (Emacs'ın aynı sürümünü kullanarak) oluşturdum, burada Emacs bu dosyayı okuyabilir / yazabilir. Daha sonra içeriğinin ~/.gnupg üzerine bu makineye kopyaladım . Ve şimdi gpg hala okuyabilir, ancak Emacs okuyamaz.

EDIT: Bu bir gpg1 vs gpg2 farkı olabilir mi?

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

Diğer makinedeki Emac'lar (aynı yapılandırmayı, Emacs'ın (25.1) aynı sürümünü ve aynı işletim sistemini (Fedora 24 x86_64, gpg ve gpg2 paketlerinin aynı sürümü) kullanarak) nasıl okundu ve yazdı. Her neyse,

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

Yine de aynı hatayla sonuçlanır.


Denedin (setq epg-gpg-program "gpg2")mi
caisah

Yaptım. Bu da varsayılan. Ve işe yaramıyor. Tıpkı gpg2 komut satırı programında olmadığı gibi. Bu gpg2 kendisi ile ilgili bir sorun olduğunu düşünmeye başlıyorum, emacs hiç değil.
omajid

3
@caisah Bkz. Hata # 24229 , setqişe yaramıyor , epg-gpg-programözelleştirmeniz gerekiyor.
npostavs

Yanıtlar:


15

Hangi işletim sistemi veya emacs sürümünüz olduğunu söylemezsiniz.

Dün aynı sorunu OSX ve emacs 25.1'de bu bağlantıdan gelen bilgileri kullanarak çözdüm: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

Bu komutları çalıştırdım:

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

ve emacs conf dosyamda pinentry modunu ayarlayın:

(setf epa-pinentry-mode 'loopback)

Lütfen işletim sistemi ve Emacs sürümleri için yaptığım düzenlemelere bakın. Kesinlikle gpg / gpg2'nin sistem sürümlerini geçersiz kılmayı planlamıyorum.
omajid

Standart demleme paketi gnupg bir süredir 2.1 sürümü olmuştur. Onunla tam olarak uyumlu olmayan eski 1.4 ve 2.0 sürümleri ayrı paketler halinde mevcuttur.
Heikki

Sadece bir bilgi: Linux'ta benzer bir sorun yaşadım ve bu çözüm de sorunumu çözdü.
Manoel Vilela

2
(setf epa-pinentry-mode 'loopback)Hile işaret ettiğin için teşekkürler .
phs

1
(setf epa-pinentry-mode 'loopback).Emacs içine çizgi eklemek benim homebrew gelen gpg 2.2.16 ile benim Gnu Emacs 26.2 için yeterli oldu.
Dave X
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.