今天是个好日子,
我刚刚使用软件更新程序升级到 Ubuntu 15.10。重启后我发现 Thunderbird(版本 38.3.0)中的 Enigmail(版本 1.2.8)停止工作。我无法签名或加密邮件。
当 Enigmail 使用 gpg (GnuPG) 1.4.18 时,按下发送按钮后立即出现以下错误窗口:
Send operation aborted.
Error - bad passphrase
我甚至没有看到输入密码的对话框。为了测试,我安装了 gpg (GnuPG) 2.0.28,重新安装了 Enigmail 并将其配置为使用 gpg2。在“首选项”->“基本设置”中调整设置时,出现以下错误:
Cannot connect to gpg-agent.
Maybe your system uses a specialized tool for passphrase handling
(e.g. gnome-keyring, seahorse-agent, KDE wallet manager, ...).
Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using.
Therefore the respective timeout settings in Enigmail are disregarded.
当我尝试使用 gpg2 发送签名或加密的邮件时,我收到不同的错误消息:
Send operation aborted.
Key 0xXXXXXXXX not found or not valid.
The (sub-)key might have expired
这根本不是事实。密钥存在并且尚未过期。奇怪的是,Enigmail 密钥管理器确实正确显示了密钥。
根本问题似乎出在 gpg-agent (gpg-agent (GnuPG) 2.0.28) 上。检查代理是否正在运行:
> ps ax | grep gpg
6971 ? Ss 0:00 gpg-agent --daemon
正在尝试连接:
> gpg-agent
gpg-agent: can't connect to the agent: IPC connect call failed
> sudo gpg-agent
gpg-agent: no gpg-agent running in this session
尝试签署文件:
> gpg -s test.txt
[user and key info]
can't connect to `/tmp/gpg-GBtHXS/S.gpg-agent': No such file or directory
gpg: can't connect to `/tmp/gpg-GBtHXS/S.gpg-agent': connect failed
TL;DR;
显然 gpg-agent 不再起作用。我的问题是:
- 为什么 gpg-agent 不再工作了?
- 如何修复此问题?
感谢大家的时间和见解。
软件版本汇总:
- gpg(GnuPG)1.4.18
- gpg(GnuPG)2.0.28
- gpg-代理 (GnuPG) 2.0.28
- Enigmail 1.2.8。
- Thunderbird 38.3.0
- Ubuntu 15.10 狡猾的狼人
答案1
我遇到了类似的问题并通过安装 pinentry-gnome3 解决了它(我使用的是 Gnome Shell,而不是 Unity):
sudo apt-get install pinentry-gnome3
答案2
我得到了它部分又可以工作了。对于任何感兴趣的人,以下是我所做的。
- 删除了 Enigmail
- 删除了 GPG2
- 重启
- 重新安装 GPG2
- 重新安装并配置 Enigmail
- 重启
加密现在与以前一样。但是,签名消息仍然失败并出现上述错误消息(密钥无效...)。
GPG 代理现在可以通过命令行按预期工作。Enigmail 仍然不提示我输入密码,并且仍然报告密钥丢失或无效。
编辑:改变答案,因为还为时过早
答案3
通过添加解决了该问题
use-agent
到.gnupg/gpg.conf
安装后,gpg-agent 默认并未运行。