跳转至

Git 使用GPG key认证提交

概要: 本文介绍在macOS系统中,如何使用GPG工具来认证git提交

创建时间: 2022.05.23 23:42:43

更新时间: 2023.08.16 22:35:11

安装GPG工具

安装GPG工具

Bash
brew install gpg
gpg --version
image.png

安装pinentry工具

Bash
brew install pinentry-mac
pinentry --version
image.png
注意:如果你使用的是M1芯片的macOS系统(本机 M1Max 芯片测试OK),还需要进行如下配置
Bash
echo "pinentry-program /opt/homebrew/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf 
killall gpg-agent

生成GPG密钥

Bash
gpg --full-generate-key
image.png
image.png
最后按照提示配置好密码
image.png
image.png

使用GPG密钥

查看GPG密钥

Bash
gpg --list-secret-keys --keyid-format LONG
image.png
此时 sec 这行 rsa4096/FFD6B70B490B4C53 就是我们的GPG私钥,其对应的私钥ID为 FFD6B70B490B4C53

测试GPG密钥

我们可以使用如下命令尝试加密简短的文字

Bash
echo "test" | gpg --clearsign
image.png
如果输出和上面类似,那么说明配置成功,GPG工具和密钥都可以正常使用

导出GPG公钥

Bash
gpg --armor --export FFD6B70B490B4C53
image.png
将上述生成的公钥进行拷贝,准备添加到GitHub

添加GPG公钥

在提交代码到GitHub之前,我们还需要在GitHub上配置我们的GPG密钥
点击右上角头像,进入 GitHub页面setting -- SSH and GPG keys -- New GPG key 添加我们刚刚生成的GPG公钥
image.png
image.png
此时即添加成功

使用GPG密钥

Bash
1
2
3
git config --global user.signingkey FFD6B70B490B4C53
git config --global gpg.program gpg
git config --global commit.gpgsign true
接下来,我们尝试对一个GitHub上的仓库进行commit操作,然后查看git提交记录
image.png
image.png
可以看到已被成功签名
然后,我们将本地变更推送到GitHub
Bash
git push -u origin master
最后,我们就可以在对应的仓库中看到提交的带有认证的commit
image.png
是不是有一种自己的网站https加密后浏览器地址栏显示的绿色锁的感觉呢?

参考