用GPG签名告诉大家这就是我的提交
同学们早,大家签名 Commit 了吗?不签也可以,随便你。jpg
其实并不是我主动发现的这个功能,而是我看到了这些个洋葱新闻才发现了问题:
好吧,还是搞搞 GPG 签名比较稳妥,虽然我的项目也不会有人这么搞就是了
本来这是 GitHub 很早前就有的漏洞了,他们说这个不影响。现在闹大了才勉强对这种情况标了个游离提交
Git 本身使用邮箱标注是谁的提交,这样就意味着可以随意冒充。但是新版本 Git 支持了 GPG 签名,这样就算 SSH Key 泄露了也能保证这个提交是你的了
Windows 的 git 已经包含了 GPG,不需要额外安装了。但是需要在 GitBash 下才能使用。不过 VSCode 也可以使用就是了
验证是否已经有了 GPG 密钥
1 |
|
如果输出有的话,那么就不想要新建了
新建 GPG 密钥
1 |
|
可以一路回车,输入邮箱之类的推荐用在 GitHub 验证过的
其实按照 GitHub 的工作原理的话,邮箱也必须是在 GitHub 验证过的
密钥长度这一项一定要写 4096 长度,这是 GitHub 的要求
导出公匙
列出所有密钥
1 |
|
举个例子,假设它的输出为下面这样
当然,你能通过时间看出来谁是最新的,最新的那个当然是你想要的
1 |
|
复制以 sec 开头的 GPG 密钥 ID
根据上面一条的输出,所以它的密钥 ID 为
1 |
|
导出该 ID 的公钥
根据上一步,接下来我们的命令会变成这样
1 |
|
他会输出你的公钥,把它们全部粘贴复制到 GitHub 的 GPG Keys 里面就行
将 GPG 密钥与 Git 关联
把上面的 ID 粘贴复制下来,输入下面这个命令
1 |
|
然后我们需要让 Git 默认用 GPG 签名
1 |
|
大功告成
用GPG签名告诉大家这就是我的提交
https://blog.krysztal.dev/2022/02/18/用GPG签名告诉大家这就是我的提交/