无法使用 GnuPG 生成密钥(agent_genkey 失败:没有此文件或目录)

无法使用 GnuPG 生成密钥(agent_genkey 失败:没有此文件或目录)

运行时gpg --gen-key,我得到:

gpg: agent_genkey failed: No such file or directory
Key generation failed: No such file or directory

我尝试过killall gpg-agent并且gpgconf --kill gpg-agent。我的private-keys-v1.d是在内创建的~/.gnupg

我也无法删除密钥:

gpg: deleting secret key failed: No such file or directory
gpg: deleting secret subkey failed: No such file or directory

编辑:

我尝试删除 .gnupg 并重新安装 gpg,但问题仍然存在。

答案1

对我来说,问题在于我设置export GPG_TTY=$(tty)了 shell。

原因是修复这个错误

error: gpg failed to sign the data
fatal: failed to write commit object

我删除之后它就可以正常工作了。

答案2

在某些情况下,目录~/.gnupg/private-keys-v1.d可能无法创建,或者可能以错误的权限创建。

尝试这个:

# mkdir -p ~/.gnupg/private-keys-v1.d
# chmod 700 ~/.gnupg/private-keys-v1.d

还要查找.gnupg目录中可能需要删除的任何奇怪的文件。

答案3

您使用的终端仿真器肯定不是 tty。pinentry-tty是输入密码的默认设置。 对我来说,将其更改为pinentry-gnome3即可。 要查看 pinentry,您可以使用:ls /usr/bin | grep pinentry

您需要在您的中添加此行~/.gnupg/gpg-agent.conf

pinentry-program /usr/bin/<pinentry_name>

并重新加载gpg-connect-agent

gpg-connect-agent reloadagent /bye

答案4

我用过sudo gpg --gen-key,效果很好

相关内容