GPG 是一个非常出色的加密软件。为 Commit 带上 GPG 的签名就是一个很好的开始,它能够在一定程度上保证安全性。写本文的另一个原因是,之前经常查看的大佬的博客打不开了,就研究了一下,准备自己写一篇。
基本要求
git 版本 >= 2.0
已经安装 GPG (可通过输入gpg --version
,确保已经安装)
生成 GPG Key
在终端/命令提示行中输入
1 |
|
此处的交互选项推荐为:
- RSA and RSA (Default)
- 4096
- 过期长度请自行选择,不知道的话,可输入 0 (默认值),即永不过期
接下来便需要输入您的个人信息了,此处的邮箱需要与 Github 对应
导入 GPG key
此部分为将其他位置导出密钥,导入至当前设备中,不需要的话,可直接跳过此步骤
此处文件名以 edison.gpg
为例
1 |
|
此处需要输入之前设置好的密钥密码。
导入完成后,还需要更改密钥的信任度,因为是我们自己的密钥,所以将信任度设置为 Ultimate
。
首先,输入下面的代码,查看自己所有的 GPG key
1 |
|
输出内容如下(示例)
1 |
|
其中 sec 部分的 1234567890ABCDEF 就是我们刚刚生成的 GPG key 的 ID,我们要修改这个密钥的信任度,所以输入
1 |
|
此处输入 5
,即完全信任。
将 GPG key 保存到 GitHub
输入下面的命令显示完整的 GPG key, 此处要注意将 1234567890ABCDEF 修改为实际内容
1 |
|
复制输出的全部内容
1 |
|
访问 GitHub -> Settings -> SSH and GPG keys -> New GPG key,将复制好的 GPG key 粘贴到输入框并保存。
启用 GPG 签名
接下来便要为 Git 启用 GPG 签名了,首先设置自己的 GPG key
输入
1 |
|
单次 Commit 签名
在提交 Commit 时,添加 -S
即可对本次 git 进行签名
1 |
|
每次 Commit 都签名
执行下面的命令即可,日后提交 Commit 的时候也不需要再加 -S
了
1 |
|
提交 Commit 的效果就会是这样了。