GPG 不提示输入密码 [已解决]

问题描述

所以直到昨天 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