运行时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
,效果很好