我无法签署提交。使用以下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。
有什么建议吗?
答案 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 使用您的密钥。