GPG/Agent 不要求输入密码

GPG/Agent 不要求输入密码

我对使用 Enigmail 1.9.7/GPG 2.1.15 的 Ubuntu (17.04) 设置感到有点沮丧。我认为在从 Ubuntu/Unity 更改为 Ubuntu GNOME 后(但我真的不知道这是否是触发因素),Enigmail 停止工作:我无法再解密收到的加密电子邮件。系统没有要求我输入 GPG 密钥密码,pinentry(尽管在测试中通常有效)跳过输入密码的提示,gpg-agent 只是告诉我没有输入密码。

Thunderbird/Enigmail 提示“缺少密码”,这就是我开始的地方。然后我尽可能地调试问题,使用此链接官方 Enigmail 故障排除指南以及更多链接和指南。

  • 我可以签署邮件(作为测试发送给我自己),在 Thunderbird 中验证它们没有问题。
  • 我可以向自己发送加密邮件;收到的邮件有来自 Enigmail 的信息,提示密码缺失: 截屏

  • 所有 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

相关内容