繁体   English   中英

Git 错误:gpg 未能在 Linux 上对数据进行签名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM