使用pgp向github提交签名commit
快速介绍
什么是pgp
GNU Privacy Guard(GnuPG或GPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG是自由软件,遵循IETF订定的OpenPGP技术标准设计,并与PGP保持兼容。
为什么要提交签名commit
众所周知,Git的提交只需要自己的邮箱和密码,这就出现了一个漏洞: 只要他人有你的用户名和邮箱,就可以进行提交,就可以更改你的仓库内容。
一个典型的案例:https://spencerwoo.com/blog/wait-this-is-not-my-commit
阅前须知
- 阅读本教程,默认您拥有一定的git基础
- 本教程环境为
ubuntu22.04
创建PGP密钥
使用下列命令来创建一个属于你的密钥对:
1 | gpg --full-generate-key |
其输出应该像这样(come from there )
1 | /home/spencer/.gnupg/pubring.kbx |
其中,第一行的RSA4096后的24CD550268849CA0为你的PGP指纹。请妥善保存它(后面会用到)。
接着我们需要告诉 GitHub 我们使用的 GPG 公钥。
使用下面的命令即可导出我们的 GPG 公钥
1 | gpg --armor --export [你的指纹] |
接着将输出(他应该长这样)
1 | -----BEGIN PGP PUBLIC KEY BLOCK----- |
粘贴到 此处,并保存。
使用git签名commit
使用如下命令,就可以完成本操作。(此命令会开启所有commit全部签名,如果不需要请查阅后文)
1 | git config --global user.signingkey [你的指纹] |
如需单次签名 使用git commit命令时,在结尾加入-S参数,即:
1 | git commit -S -m "commit注释" |
完成
完成上述步骤后进行一次提交,即可看见自己的commit上有了Verified的绿色标签(如果不行,你可以找谷歌爸爸(手动狗头))
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments







