如何给Github commit启用GPG Sign签名

添加签名

如果实现了GPG Sign签名,那么你在Github上面的提交应该是像这个样子的:

首先你应该把Github官方的文档(左边栏关于添加GPG签名的所有文档)都通读或者操作一遍1 。因为所有你可能会遇到的情况 github 都已经很贴心地写了文档,而且这些文档都非常地简单易懂。 然后你就可以仿照下面提到命令进行操作:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
gpg --full-generate-key
# use ecc
gpg --list-secret-keys --keyid-format=short
# choose the id which line begins with ssb behind cv25519
gpg --armor --export KEYID | pbcopy 
# add to github ssh and gpg keys
# config git to use gpg key to sign commits
git config --global commit.gpgsign true
git config --global user.signingkey KEYID
# add to ~/.zshrc
export GPG_TTY=$(tty)
# install plenary-mac
brew install pinentry-mac

备份及还原

可以顺带一提的是 GPG 的备份,可以简单通过:gpg --export-secret-keys --armor --output privkey.asc user-id 进行备份,--armor的意思是转换二进制为可读的文字,这样可以方便打印出来,也可以转换成二维码之后再打印出来,因为最好的备份方式还是物理备份(如果这张纸不幸被偷那么另说)。我的话是直接丢在 Google Drive 上面的,这个可能是我盲目自信了。

根据资料是这样的:gpg --import privkey.asc 应该还需要一些信任的操作,可以具体查询下面提供的参考资料。

补充

事实上,1Password这个密码管理器已经支持了 SSH 的托管,而 Github 也已经支持了 SSH Commit Signing,换言之也可以直接通过更加现代化和安全的方式来做commit的签名,具体可以参考:

SSH commit verification now supported

git commit signing

1Password for SSH & Git

参考

Sign git commits on GitHub with GPG in macOS

Methods of Signing with GPG on MacOS

GnuPG (简体中文)

Anatomy of a GPG Key

backup-and-restore-a-gpg-key

How to backup gpg keys on paper

Setting up a GPG verification on the GitHub

GPG: Change email for key in PGP key servers

Built with ❤️ by @d0zingcat
使用 Hugo 构建
主题 StackJimmy 设计