在macOS上使用GPG对GitHub进行签名
在GitHub上面我们对自己提交的commit进行签名,通过签名之后GitHub就会知道这个commit是经过签名的、可信的commit,并且会有个绿色的“Verified”显示在旁边。
安装PGP
这里通过homebrew进行安装,没有的话可以通过官网https://brew.sh/ 先安装homebrew。
1 |
|
安装完成后可以通过gpg --version
查看当前安装的GPG版本号。
生成GPG秘钥
GPG版本为2.1.17或者更高
1 |
|
GPG版本低于2.1.17
1 |
|
生成密钥时的参数
加密方式选择默认的:RSA and DSA
秘钥长度:4096
秘钥有效时间可以根据自己的喜好进行选择。
在输入用户信息的时候需要输入经过GitHub认证过的邮箱,可以通过连接 https://github.com/settings/emails 查看。
接下来就是要输入验证的密码,这里可能会是乱码,但是不影响输入,这里一共需要输入两次密码。
查看生成的秘钥
通过命令查看GPG秘钥的ID
1 |
|
输出如下:
1 |
|
这里的3AA5C34371567BD2
就是我们需要的秘钥ID,接下来运行下面的命令,将其中的秘钥ID替换为自己的ID
1 |
|
得到从 -----BEGIN PGP PUBLIC KEY BLOCK-----
开始到 -----END PGP PUBLIC KEY BLOCK-----
结束的公钥。
添加GPG公钥至GitHub
打开GitHub的设置页面:https://github.com/settings/keys
点击 New GPG key
,把刚刚得到的公钥粘贴进去。
设置git使用GPG秘钥
运行命令,需要替换为自己的秘钥ID:
1 |
|
如果只需要对当前仓库使用GPG秘钥:
1 |
|
如果需要对所有仓库使用GPG秘钥:
1 |
|
提交报错
这个时候如果进行commit,会遇到一下的错误:
1 |
|
经过查询,需要安装 pinentry-mac:
1 |
|
然后在文件~/.gnupg/gpg-agent.conf
中加入
1 |
|
最后重启pinentry才能生效:
1 |
|
这个时候再次进行commit,就可以正常输入密码提交了。