Git GPG签名失败,没有明确的消息

6ioyuze2  于 2023-01-24  发布在  Git
关注(0)|答案(5)|浏览(167)

如果我把Git设置为使用GPG密钥签名,它会失败。我试过GIT_TRACE,但它并没有给予我更多的信息:

$ GIT_TRACE=1 git commit
15:29:35.112157 git.c:344               trace: built-in: git 'commit'
15:29:35.115745 run-command.c:626       trace: run_command: 'code --wait' '/Users/b/VurbAgency/haarlem.github.io/.git/COMMIT_EDITMSG'
15:29:52.884006 run-command.c:626       trace: run_command: 'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID'
error: gpg failed to sign the data
fatal: failed to write commit object

当我尝试运行'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID'时,它只是在说BEGIN_SIGNING H8后挂起,不再做任何事情。
关于如何解决这个问题或研究的途径有什么想法吗?

toe95027

toe950271#

我在遇到同样的错误时偶然发现了这一点,而且我已经在使用最新版本的GPG(2. 2. 17)。对我来说,结果是多方面的。
1.在提交之前,我必须运行$ export GPG_TTY=$(tty),然后出现密码提示。
1.如果我使用带有特殊字符的密码,它就不起作用(提示说我在尝试使用时密码不正确),所以我只能使用字母数字字符。
如果你这样做是为了在GitHub上获得经过验证的提交,请确保用户名和电子邮件地址与你在GitHub上的一致。

j9per5c4

j9per5c42#

如果您使用Homebrew安装了gpg,并且还使用GPGTools,则需要卸载Homebrew的gpg。

# Uninstall gpg in homebrew so that it uses the gpg in GPGTools instead
$ brew uninstall gpg

# You might need to do some extra cleanup afterward as well:
$ rm -r /opt/homebrew/etc/gnupg

# Restart the gpg-agent so that it uses the correct one:
$ gpgconf --kill gpg-agent

在那之后,git又可以签署我的提交了。

bvhaajcl

bvhaajcl3#

我遇到了同样的问题,在GnuPG配置文件~/.gnupg/gpg-agent.conf中,pinentry-program路径指向pinentry-mac,而pinentry-mac丢失了。
运行brew install pinentry-mac修复了它。

gev0vcfq

gev0vcfq4#

在我看到我的GPG版本是2.2.5,最新的是2.2.10之后,我已经用brew upgrade gpg更新了我的Mac上的GPG。
目前,这已经解决了这个问题。但是,我仍然不知道这个问题的原因是什么。

uujelgoq

uujelgoq5#

我遇到了一个类似的错误:BEGIN_SIGNING H10.
在OSX上,为了修复它,我运行gpgconf --kill gpg-agent

相关问题