多年来,我一直在解密我的 GPG 加密文件。我的私钥是用密码加密的。尝试解密时,会出现一个对话框,要求我输入密码。这种情况只发生过一次,然后它会记住我的密码,直到注销。那是在 Debian wheezy 中,几个月来,在 jessie 中也是如此。(我使用的是 Debian 的默认 GNOME 3 环境。)
最近它开始解密而不要求输入密码。我尝试使用 和 更改密码gpg --edit-key my-key-id
,passwd
但没有任何区别。它首先要求我输入现有密码,然后要求我输入两次新密码。但gpg -d some_encrypted_file
重新启动后始终可以正常工作,而无需输入密码。
似乎gpg-keyring-daemon
有问题。如果我尝试unset GPG_AGENT_INFO; gpg -d some_encrypted_file
,它会要求输入密码,否则不会解密。
更新:不知何故,在 中dconf-editor
,desktop.gnome.crypto.cache.gpg-cache-method
被设置为always
。我将其更改为session
但没有任何区别。
答案1
我相信我已经知道到底发生了什么事了。
当出现要求输入密码的对话框时(我认为该对话框是一个名为 的应用程序pinentry
),它有一个复选框,上面写着“每次登录时自动解锁此密钥”。如果您(无意中)选中该复选框,它会做两件事:(a)它会记录自动解锁此密钥的决定;(b)它会存储您的密码。
所以现在你需要撤消这两件事。
首先,转到dconf-editor
并将 设置desktop.gnome.crypto.cache.gpg-cache-method
为其默认值,session
而不是always
。
其次,转到应用程序“密码和密钥”(即seahorse
,是的,我很困惑),密码,登录,然后删除存储的密码。
(所有这些显然都不适合用于可用性竞赛。)