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

pmc*_*521 2 linux git sign

我在签署提交时遇到麻烦。使用以下git config:

user.name=Bob
user.email=[bob's email]
user.signingkey=ABCDEFGH
user.user=bob1
gpg.program=gpg2
Run Code Online (Sandbox Code Playgroud)

有人告诉我只包含密钥的前八个字符。

暂存后,在时git commit -S -m "commit message",我收到以下错误:

error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

似乎大多数遇到此错误的用户都在Mac上,并且需要做一些额外的设置。但是我在使用Kali Linux。

有什么建议吗?

amo*_*rdo 9

使用 WSL (Ubuntu) 也遇到同样的问题。感谢这个答案,我的工作解决方案是添加export GPG_TTY=$(tty)进去。~/.bashrc


lar*_*sks 6

有人告诉我只包含密钥的前八个字符。

的值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
Run Code Online (Sandbox Code Playgroud)

那么密钥ID是0A46826A

git config --global user.signingkey 0A46826A
Run Code Online (Sandbox Code Playgroud)