Git错误:gpg无法在Linux上签名数据

时间:2018-10-15 00:41:44

标签: linux git sign

我无法签署提交。使用以下git config:

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。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

  

我被告知只包含密钥的前八个字符。

user.signingkey的值是一个密钥ID ,用于标识在生成签名时git应该使用的密钥。

有一个完整的示例in the official documentation,它显示了该如何工作。如果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

答案 1 :(得分:1)

对于那些遵循答案但无法使其起作用的人。您有可能尝试过其他解决方案,但不小心这样做了(适用于 MacOSX,而​​不是 Linux)

<块引用>

git config --global gpg.program=gpg2

除非您使用的是 MacOSX,否则您不应该这样做。 首先,您需要先通过运行此命令来unset 该条目(因为您的系统使用 gpg NOT gpg2)。

<块引用>

git config --global --unset gpg.program

现在您可以按照答案告诉 Git 使用您的密钥。