git提交代码时使用GPG添加签名
2018-05-10 本文已影响0人
赵海洋
今天看github上代码时发现有commit中有Verified的状态。
image.png
按照图中的链接点进去了解了一下,相关资料。
按照方法安装了gpg,也生成了key,并设置给了git,但是提交代码时遇到问题。
image.png
上图可见,使用gpg直接查看key时,能查看到。但是使用git提交时失败。
对比发现,git for windows安装程序下也有个gpg.exe:
image.png
而且版本是低版本,只有1.4.22.
image.png
在生成key时调用的是后安装的高版本,在这版本里证书的存储位置和格式都发生了变化。新版本的配置文件存储在%appdata%\gnupg里,而git里集成的是较老版本,使用的是User目录中的.gnupg。
解决方案
- 使用
gpg -a -o gpg.private.export --export-secret-keys
导出私钥 - 使用
gpg -a -o gpg.public.export
导出公钥 - 使用git下的
gpg --import
分别导入公钥和私钥 - 使用git下的
gpg -K
查看key(两边的不一致) - 再使用 git config --global user.signingkey <你的GPG key> 设置到全局参数中
然后在git命令行中就可以使用它签名了。
git commit -a -m "test signed" -S
再使用git log --show-signature -1
查看签名信息。
另外再附加二个选项,可以使提交时默认使用签名:
git config commit.gpgsign true