首页 > 解决方案 > Git GPG 签名失败,没有明确的消息

问题描述

如果我将我的 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并且不再做任何事情。

关于如何解决这个问题或研究途径的任何想法?

标签: gitgithubgnupg

解决方案


当遇到相同的错误时,我偶然发现了这一点,并且我已经使用了最新版本的 gpg (2.2.17)。对我来说,事实证明这是多方面的。

  1. 在提交之前,我必须运行$ export GPG_TTY=$(tty). 然后这会提示出现密码提示。
  2. 如果我使用带有特殊字符的密码短语,它就不起作用(提示说我尝试使用时密码短语错误),所以我只能使用字母数字字符。

如果您这样做是为了在 GitHub 上获得经过验证的提交,请确保名称和电子邮件地址与您在 GitHub 上的内容相匹配。


推荐阅读