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。

解决方案

  1. 使用gpg -a -o gpg.private.export --export-secret-keys导出私钥
  2. 使用gpg -a -o gpg.public.export导出公钥
  3. 使用git下的gpg --import分别导入公钥和私钥
  4. 使用git下的gpg -K查看key(两边的不一致)
  5. 再使用 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

上一篇下一篇

猜你喜欢

热点阅读