【发布时间】:2014-12-14 18:11:02
【问题描述】:
设置后
$ gpg --list-keys
/home/pablo/.config/gnupg/pubring.gpg
-------------------------------------
pub rsa4096/46F257F2 2014-09-16 [expires: 2015-09-16]
uid [ultimate] Pablo Olmos de Aguilera Corradini (Personal) <mail@tld.com>
并将信息放在 gitconfig 上:
[user]
name = Pablo Olmos de Aguilera Corradini
email = mail@tld.com
signinkey = 46F257F2
[commit]
gpgsign = true
我明白了:
gpg: skipped "Pablo Olmos de Aguilera Corradini <mail@tld.com>": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
如您所见,这些键确实存在(它们在运行gpg --list-secret-keys 时也会出现)。如果我从gitconfig 中删除所有内容,并尝试仅使用-S 执行此操作,我会收到相同的错误,这让我认为git 正在将我的用户名和电子邮件传递给gpg,并且uid 包括“评论”(Personal),所以没有找到:
$ gpg --list-keys "Pablo Olmos de Aguilera Corradini <mail@tld.com>"
gpg: error reading key: No public key
我不确定这是 git 的错误,还是预期的结果,我遗漏了一些东西 :)。
PS.- 我猜我可以创建另一个 uid 但没有评论,它应该可以工作。
【问题讨论】:
-
签名只需要密钥。因此
gpg --list-keys的输出是无关紧要的。 -
您是否使用同一用户列出密钥并尝试使用 git 签名?