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使用您的密钥。
我在签署提交时遇到问题。使用以下 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使用您的密钥。