我已经使用 enigmail 一年多了,没有问题,今天它不起作用。
我发现了以下有趣的事实:
gpg --decrypt something.gpg # this works
gpg2 --decrypt something.gpg # this fails
Run Code Online (Sandbox Code Playgroud)
所以我的机器上的 gpg 版本 2 有问题。
这让我看到:
gpg --list-secret-keys # reads from ~/.gnupg/secring.gpg
gpg2 --list-secret-keys # reads from ~/.gnupg/pubring.gpg (pubring?!)
Run Code Online (Sandbox Code Playgroud)
这似乎是问题的根源……当然gpg2找不到密钥,因为它在错误的文件中查找。
gpg2当我的gpg工作正常时,我怎么会失败?我没有看到任何用于指定从何处读取密钥的选项。
有人有任何想法吗?
对@grawity 的回应:
谢谢,我很感激你的帮助。我跑了strace,我明白你在说什么。
但是,即使在gpg2 --import ...我看到行为没有差异之后。如果我重新启动(不启动 gpg-agent),运行gpg2 --import ...,然后运行,我只能让它工作gpg2 --decrypt ...。在那个序列之后,thunderbird + enigmail 也表现得很好。但是,大约 15 分钟后(我猜是我输入的解密密码已过期),然后gpg-agent又恢复到原来的行为。这个顺序是可重复的。
所以这里有一些输出,如果它有助于清除任何东西:
的输出gpg2 -K:
/home/<username>/.gnupg/pubring.gpg
---------------------------------
sec rsa4096/AAAAAAAA <date> …Run Code Online (Sandbox Code Playgroud)