GPG简介
(摘自维基百科)
GNU Privacy Guard(GnuPG或GPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG是自由软件,遵循IETF订定的OpenPGP技术标准设计,并与PGP保持兼容。
简单的说,就是用于加密的密钥。
众所周知,Git的提交只需要自己的邮箱和密码,这就出现了一个漏洞:
只要他人有你的用户名和邮箱,就可以进行提交,就可以更改你的仓库内容。
一个典型的案例:https://spencerwoo.com/blog/wait-this-is-not-my-commit
具体操作
-
电脑上安装好Git 没有安装的可以在此处下载:https://repo.huaweicloud.com/git-for-windows/
-
打开Git Bash,输入
1
$ gpg --full-generate-key
在第一处,选择RSA
在第二处,选择4096bits 在第三处,选择过期时间,回车为永不过期
在用户ID处,填写自己的Github用户名
在签名邮箱处,填写Github上绑定的邮箱
最后,为密钥设置一个密码,也可以不设置,如果设置了则一定要记住这个密码
这样,就成功生成了一对GPG密钥 -
运行
1
$ gpg --list-secret-keys --keyid-format LONG
来查看我们当前拥有的所有GPG密钥:
其中,sec一行的FB8FA623E7013D41
即为GPG私钥ID
4. 运行
|
|
此后的每一次提交,Git都会用其进行签名 5. 运行
|
|
来导出自己的GPG公钥,类似这样:
|
|
将这一段粘贴到https://github.com/settings/keys 的GPG keys处,随后进行一次提交,即可看见自己的commit上有了Verified的绿色标签