危险漏洞:pinentry-mac 完全且持续地禁用 GPG 密码提示

危险漏洞:pinentry-mac 完全且持续地禁用 GPG 密码提示

简而言之:我刚刚安装pinentry-mac,它只要求我输入一次密码,但随后解密 gpg 文件时无需输入密码

长话短说:

我正在运行 macos 并且使用gpgpass作为钥匙串。

我不确定为什么会发生这种情况,但我更新了机器上的几个包,我认为 gpg 已更新为 gpg2。使用 pass 时,我收到以下错误消息:

gpg: error running '/opt/local/bin/gpg-agent': exit status 2
gpg: failed to start gpg-agent '/opt/local/bin/gpg-agent': General error
gpg: can't connect to the gpg-agent: General error
gpg: error running '/opt/local/bin/gpg-agent': exit status 2
gpg: failed to start gpg-agent '/opt/local/bin/gpg-agent': General error
gpg: can't connect to the gpg-agent: General error
gpg: keydb_search failed: No agent running
gpg: error running '/opt/local/bin/gpg-agent': exit status 2
gpg: failed to start gpg-agent '/opt/local/bin/gpg-agent': General error
gpg: can't connect to the gpg-agent: General error
gpg: error running '/opt/local/bin/gpg-agent': exit status 2
gpg: failed to start gpg-agent '/opt/local/bin/gpg-agent': General error
gpg: can't connect to the gpg-agent: General error
gpg: keydb_search failed: No agent running
gpg: public key decryption failed: No secret key
gpg: decryption failed: No secret key

当时文件的内容gpg-agent.conf如下

max-cache-ttl 0
default-key 1234**************************

根据另一个问题我通过 homebrew 安装了 pinentry

pinentry-program /usr/local/bin/pinentry-mac

之后,当我在终端中打开 .gpg 文件时,我收到终端外的提示(之前没有收到过:我认为是 Keychain),要求输入密码。我没有收到之前收到的基于终端的提示。此后,我不再被要求输入密码,并且可以在没有密码的情况下打开所有 .gpg

然后我按照@user3056783的回答pinentry-mac 完全禁用 GPG 密码提示 这有效,但是 1. 得到了相同的密码提示,问题再次出现,这次 1. 我找不到GnuPG钥匙串访问中的条目,现在我必须重新启动我的机器,以便它“忘记”我的密码

这是一个巨大的漏洞。我该如何解决这个问题,以便打开每个 gpg 文件时系统都会询问我的密码?

答案1

好的。我发现一个不太好的解决方法是每次使用 gpg 代理时,通过在我的 中创建以下别名来终止它.zshrc

alias pass="pkill -TERM gpg-agent; pass"

但我现在很想知道如何更优雅地解决这个问题

相关内容