问题描述
所以直到昨天 gpg 一切正常。但是今天,它没有提示输入密码,我只是得到一个空的闪烁的命令行。
我正在使用 gpg 来签署 git 提交。我认为问题出在 git 上。但是不,如果我执行 echo "test" | gpg --clearsign
,我会得到与执行 git commit
时相同的结果(空命令行不提示输入密码)。
起初,我在执行 git commit
时遇到的错误是
error: gpg Failed to sign the data
fatal: Failed to write commit object
但是在 this thread 中,他们在您的 bashrc/zshrc 中对 export GPG_TTY=$(tty)
说
如果你得到那个错误。这阻止了 gpg 显示错误 error: gpg Failed to sign the data
,但它仍然不提示输入密码。
我不能做任何与提示输入密码相关的事情,不能用 gpg --list-secret-keys --keyid-format LONG` 或任何东西列出我的密钥。我可以毫无问题地看到我的公众。我再次尝试导入我的私钥,我得到:
gpg: key <KEYID>: "<NAME EMAIL" not changed
然后又是一个空命令行。
我安装了 pinentry
以防万一。
我不明白。昨天一切正常!有谁知道如何解决这个问题?
解决方法
我遇到了类似的问题,结果 gpg-agent
进程挂起。
您可以尝试运行:
killall gpg-agent
然后重试:
echo "test" | gpg --clearsign