我对使用 Enigmail 1.9.7/GPG 2.1.15 的 Ubuntu (17.04) 设置感到有点沮丧。我认为在从 Ubuntu/Unity 更改为 Ubuntu GNOME 后(但我真的不知道这是否是触发因素),Enigmail 停止工作:我无法再解密收到的加密电子邮件。系统没有要求我输入 GPG 密钥密码,pinentry(尽管在测试中通常有效)跳过输入密码的提示,gpg-agent 只是告诉我没有输入密码。
Thunderbird/Enigmail 提示“缺少密码”,这就是我开始的地方。然后我尽可能地调试问题,使用此链接,官方 Enigmail 故障排除指南以及更多链接和指南。
- 我可以签署邮件(作为测试发送给我自己),在 Thunderbird 中验证它们没有问题。
所有 pinentry 测试来自Enigmail 疑难解答指南没问题,我看到了 GNOME 风格的 pinentry 对话框。
- 我的
~/.gnupg/gpg.conf
包含一个“use-agent”行(即使 GPG 2.1 中不再需要它) - 我的
~/.gnupg/gpg-agent.conf
包含一行pinentry-program /usr/bin/pinentry-gnome3
- 甚至pinentry-program /usr/bin/pinentry
在这里工作,因为它会自动检测它DISPLAY/x11/GNOME
。
我已经使用启动了 gpg-agent gpg-agent --debug-level expert --daemon /bin/sh
,记录所有 gpg 代理活动,并在尝试解密时输出:
gpg-agent[22794]: DBG: chan_4 -> INQUIRE PINENTRY_LAUNCHED 22797
gpg-agent[22794]: DBG: chan_4 <- END
gpg-agent[22794]: DBG: error calling pinentry: No passphrase given <GPG Agent>
gpg-agent[22794]: failed to unprotect the secret key: No passphrase given
gpg-agent[22794]: failed to read the secret key
gpg-agent[22794]: command 'PKDECRYPT' failed: No passphrase given
gpg-agent[22794]: DBG: chan_4 -> ERR 67109041 No passphrase given <GPG Agent>
gpg-agent[22794]: DBG: chan_4 <- [eof]
如果我将加密邮件保存为 eml 文件并手动执行gpg -d file.eml
。结果与之前相同:
$ gpg -d FM.eml
gpg: encrypted with 4096-bit RSA key, ID XXXXXXXXXXXXXXXX, created XXXX-XX-XX
"Christian Gonzalez <[email protected]>"
gpg: public key decryption failed: No passphrase given
gpg: decryption failed: No secret key
编辑~/.gnupg/gpg.conf
并删除该行
default-key XXXXXXXXXXXXX
一开始确实有帮助,但是系统重启后,老问题又出现了。
有人可以给我提示吗?
也许这与 Ubuntu 使用 Gnome-Keyring 作为代理的“特殊性”有关?是真的吗?
答案1
我遇到过同样的问题。
我删除了默认pinentry
包,即pinentry-gnome3
,并安装了它pinentry-qt
,现在 enigma 确实提示我输入密码。希望它对你有用。
答案2
我已将这些行添加到~/.xinitrc
文件中并且它再次起作用:
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi