Git error: gpg failed to sign the data on 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.

有什么建议吗?

I was told to include only the first eight characters of the secret key.

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

那么key id就是0A46826A:

git config --global user.signingkey 0A46826A

对于那些遵循答案但无法使其生效的人。有可能您已经尝试了 其他 解决方案并且不小心这样做了(这是针对 MacOSX,而​​不是 Linux)

git config --global gpg.program=gpg2

只有在使用 MacOSX 时才应该这样做。 对于 Linux,您可以先通过 运行 此命令 unset-ing 该条目来修复它(因为您的系统使用 gpg NOT gpg2).

git config --global --unset gpg.program

现在您可以按照此页面中的已接受的答案告诉Git使用您的密钥。