GnuPG

Github Verifed标志GET!

GPG

The GNU Privacy Guard

Verify Github Commit signatures

生成GPG并为Git签名的方法,参考以下几个网站:

  1. 震惊!竟然有人在 GitHub 上冒充我的身份!
  2. 2021年,用更现代的方法使用PGP(上)
  3. Generating a new GPG key
  4. Signing commits

在为Git配置GPG时,可以添加下面这行,让Git记住Commit时需要签名:

1
git config --global commit.gpgsign true

gpg failed to sign the data

1
2
error: gpg failed to sign the data 
fatal: failed to write commit object

嘛,这个是今晚手贱rm -rf ~后,出的问题[捂脸]
重新配置一下Home路径下的.gitconfig文件就行了。

1
2
git config --global user.signingkey ED5CDE14
git config --global commit.gpgsign true

user.signingkey的获取方式参考这篇

参考资料
  1. gpg failed to sign the data fatal: failed to write commit object Git 2.10.0

注意事项

Git Commit的用户邮箱、Github认证邮箱和GPG邮箱三者相同时,Commit才会被标注为Verified

Git的邮箱的更改方式参见以下博客:
git配置用户名和邮箱

1
git config --global user.email useremail@qq.com

你还可能在Commit时遇到以下错误:

1
2
3
4
gpg: skipped "xxxxxxx": secret key not available
gpg: signing failed: No secret key
error: gpg failed to sign the tag
error: unable to sign the tag

这可能是没有为Git配置使用的GPG程序的位置,正确配置GPG程序位置可以解决该问题:

1
git config –global gpg.program “location of gpg.exe”

Windows系统中,一般你可以在“C:\Program Files (x86)”下找到GPG程序文件夹。

参考文献:gpg: skipped “xxx”: secret key not available的一种解决方法

当然,你也可能想要隐藏你的真实邮箱,请参考这篇博文:
在 GitHub 公开仓库中隐藏自己的私人邮箱地址