gpg“无法写入提交对象”

时间:2019-03-07 06:47:57

标签: macos code-signing gnupg

我正在尝试在OS X Mojave上启用提交签名。

git commit -S -am "Test"

错误是:

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

我尝试过的事情:

  • gpg运行正常(请参见下文),未安装gpg1gpg2
  • 安装了GPG KeyChain并添加了新密钥(甚至添加了单独的仅签名子密钥whithin)
  • 已安装pinentry
  • gpg2 --clearsign运行正常(为文件生成一个新的.asc文件,为纯文本输出文本)

我调查并尝试了所有选项的问题:

我在做什么错了?

3 个答案:

答案 0 :(得分:3)

我也有这个问题。我找到了一个很好的解决方案。 提交前,只需尝试对文件签名。

$ touch a.txt
$ gpg --sign a.txt

然后,操作系统将允许您输入密码。 如果此步骤确定,现在您可以通过正确签名来提交。

答案 1 :(得分:0)

当然,在我发布此问题之后,我找到了解决方法。

所以我的问题是我遵循以下文档:https://help.github.com/en/articles/telling-git-about-your-signing-key

当我的Git <2.19并且没有正确的X.509密钥时,同时设置GPGsmimesign

所以我刚刚从全局smimesign中删除了带有~/.gitconfig的部分

答案 2 :(得分:0)

我刚刚将密钥ID添加到了全局配置

列出所有键:

gpg --list-keys

选择添加到github的那个并进行设置。

git config --global user.signingkey [key ID]