设定后
$ 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>
Run Code Online (Sandbox Code Playgroud)
并将信息放在gitconfig上:
[user]
name = Pablo Olmos de Aguilera Corradini
email = mail@tld.com
signinkey = 46F257F2
[commit]
gpgsign = true
Run Code Online (Sandbox Code Playgroud)
我明白了:
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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,键确实存在(它们在运行时也会出现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
Run Code Online (Sandbox Code Playgroud)
我不确定这是不是来自git的bug,或者它是预期的结果而且我遗漏了一些东西:).
PS.-我的猜测是我可以创建另一个uid但没有评论,它应该工作.
小智 11
你的gitconfig中有一个拼写错误.应该是签名密钥,而不是signinkey