[英]Git error: gpg failed to sign the data on Linux
我在签署提交时遇到问题。 使用以下 git 配置:
user.name=Bob
user.email=[bob's email]
user.signingkey=ABCDEFGH
user.user=bob1
gpg.program=gpg2
我被告知只包含密钥的前八个字符。
暂存后,在git commit -S -m "commit message"
上,我收到以下错误:
error: gpg failed to sign the data
fatal: failed to write commit object
似乎大多数遇到此错误的用户都在 Mac 上,并且需要进行一些额外的设置。 但我在 Kali Linux 上。
有什么建议吗?
我被告知只包含密钥的前八个字符。
user.signingkey
的值是一个密钥 id ,标识 git 在生成签名时应该使用哪个密钥。
官方文档中有一个完整的示例说明了它应该如何工作。 如果gpg --list-keys
显示类似:
/Users/schacon/.gnupg/pubring.gpg
---------------------------------
pub 2048R/0A46826A 2014-06-04
uid Scott Chacon (Git signing key) <schacon@gmail.com>
sub 2048R/874529A9 2014-06-04
那么密钥 id 是0A46826A
:
git config --global user.signingkey 0A46826A
对于那些遵循答案但无法使其发挥作用的人。 您有可能尝试过其他解决方案并且不小心这样做了(适用于 MacOSX,而不是 Linux)
git config --global gpg.program=gpg2
只有在使用 MacOSX 时才应该这样做。 对于 Linux,您可以通过运行此命令首先unset
该条目来修复它(因为您的系统使用gpg
而不是gpg2
)。
git config --global --unset gpg.program
现在您可以按照此页面中接受的答案告诉 Git 使用您的密钥。
使用 WSL (Ubuntu) 时遇到了同样的问题。 多亏了这个答案,我的工作解决方案是将export GPG_TTY=$(tty)
添加到~/.bashrc
中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.