0%

一、生成GPG

默认CentOS7安装有gpg,使用命令生成自己的密钥:

1
gpg --full-generate-key

按照提示选择默认输入,建议使用4096的key长度。

值得注意的是,某些用户可能无法生成KEY,因为熵池的容量不足,导致生成key的时候卡住,则可以通过安装rng-tools自动补充熵池,需要安装

1
yum install rng-tools

生成后通过gpg --list-secret-keys --keyid-format LONG查看现有的key,图中花圈部分就是这个key的ID,记住这个ID,后面将会有用到。

gitgpg001

二、托管公钥(可选)

当你提交一个commit的时候别人如何验证你的内容呢?每个人都手动传公钥过去不现实,这里就有很多托管公钥的地方,我们可以配置公钥托管服务器把自己的公钥上传。

使用命令:gpg --send-keys <公钥ID>来发送公钥到托管服务器。

注意的是!!!由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在网站上公布一个公钥指纹,让其他人核对下载到的公钥是否为真。fingerprint参数生成公钥指纹。

gpg --fingerprint <公钥ID>

三、commit自动签名

配置git的配置,使每次commit的时候自动签名:

1
2
git config --global user.signingkey <公钥ID>
git config commit.gpgsign true

以后再 Git Commit,同步到 Github 上之后,就会发现该 Commit 已显示 Verified。

四、签名的验证

怎么怎样commit上去的内容是本人签署的呢?

先从托管服务器拉取公钥:gpg --recv-keys <公钥ID>

核对公钥的指纹,gpg --fingerprint <公钥ID>

然后输入git log --show-signature -1
即可确认签名是否正确。

系统测试

由于服务器迁移,暂时测试本纯静态博客系统代替。

图片测试: