emacs gpg 解密报错问题请教

本人三台电脑,生成的gpg密钥导出到另两台时,其中有一台解密org文件时始终报错:

epg--check-error-for-decrypt: GPG error: "Decryption failed", "No secret key: 

开始以为密钥出问题了,经过试验,把报错电脑的密钥导出到其它电脑中时,居然能够正确解密。经反复试验,始终是这台电脑无法正常解密,这个奇怪的问题实在搞不明白,有兄弟遇到过没?有什么解决思路,请教。

谢谢。

终端里 gpg -d 命令可以正常解密报错的文件,错误只发生在emacs中解密,doom emacs配置环境。

太怪了!

经过试验,这台电脑加密是可以的,只不能解密,加密文件在终端通过gpg -d能解,拷贝到另两台电脑中在emacs中也能解。

这个见鬼的故障太令人抓狂!!

我能想到的可能性是因为你其中一台电脑装的是 gpg1 而不是 gpg2,它们公钥储存格式兼容但是私钥 gpg2 用的不同格式

gpg版本号一致。

假如你所说版本不一致导致报错,那不应该在终端中能解,到emacs中不能解吖?

问题其实可以归结到:在这台电脑中,在emacs中可以加密,加密后立即解密即报前述错误,切换到终端中gpg -d又可以正常解密,感觉是epa调用有问题,可是想不出解决思路 :frowning:

那这个是常见问题:pinentry 没有配置对

理论上,你的系统需要装 gui 版本的 pinentry。如果没有,则需要配置从 Emacs 输入密码

https://www.gnu.org/software/emacs/manual/html_node/epa/GnuPG-Pinentry.html

Emacs 配置里加

(setq epg-pinentry-mode 'loopback)
1 个赞

感谢大佬,完美解决。 :+1:

Windows端的GPG解密感觉挺难配置的