为 Git 设置一个 GPG 密钥后,将在每次 Commit 时确认你配置的密码,并在 GitHub 的 Commit 中显示 Verified
标识,以此标记这个 Commit 确实是由你本人完成的,而不是其他人的假冒。
操作系统版本:Windows 10 X64
使用的IDE:Intellij IDEA
点击这里下载并安装GPG工具,按照下图中指示下载安装程序
首先,我们需要生成一个带有个人信息的 GPG 密钥。
gpg --full-generate-key
直接按回车
,默认 RSA and RSA 方式即可输入 4096 后按回车
(GitHub 仅接受 4096 位及以上的位数,安全性更强)直接按回车
默认不过期即可输入 y 并回车
确认信息无误后,还需要一些你的个人信息。
Real name
,填写你的英文名后回车提交即可(可以和 GitHub 的用户名不同)Email address
,一定要填写在你的 GitHub 中认证过的邮箱地址Comment
,备注,填写 GitHub Key
(随便填都可以)在设置个人信息后,你的电脑会弹出一个密码输入窗口,输入两次相同的密码,为密钥设置密码(一定要记住密码)
等待证书生成完成(如果生成的很慢,可以在终端里随便按一些英文字母,随便滑两下鼠标,给密钥生成提供一些随机熵)
gpg --list-secret-keys --keyid-format LONG
找到 uid
行和你刚刚设置的信息相同的字段,在 uid
行的上一 sec
行找到你的 GPG Key ID,本次实验的 GPG Key ID 为 58F7B5539BF1B95B
,记住它,一会我们要用到几次
使用命令
gpg --armor --export [GPG Key ID]
会生成一段很长的公钥内容,将从 -----BEGIN PGP PUBLIC KEY BLOCK-----
开头,以 -----END PGP PUBLIC KEY BLOCK-----
为结尾(包括这两行)的内容复制下来
进入 GitHub,访问你的用户设定界面
找到 SSH and GPG Keys
选项卡,点击 New GPG key
按钮(不要点错,不要点错,不要点错)
粘贴公钥并保存
IDEA 调用的是本地的 Git,所以将 Git 直接配置好 GPG Key 即可。
使用命令 git config --global user.email
查看当前 git 命令所使用的邮箱地址,如果不对,请使用 git config --global user.email "新的邮箱地址"
进行更新。
还记得刚刚查询的 GPG Key ID 吗?让 git 知道它该使用这个 GPG Key。
git config --global user.signingkey [你的 GPG Key ID]
如果不操作本步骤,默认的 commit 还是会直接跳过签名,你可以通过在 commit 时加入
-S
参数来临时使用 GPG 进行签名。
git config --global commit.gpgsign true
Git 每次 commit 需要向 GPG 程序查找你的 GPG Key,由于新版 GPG 程序的程序目录有变更,Git 程序可能会找不到它而报错,使用命令
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
文中设定的 gpg.exe
所在位置可能和你安装的位置不同,请仔细核对后设定。
一切就绪,在你的 IDEA 中进行一次 Commit,并且 Push 到 GitHub 中试试吧:
每次 Commit 都需要验证密钥的密码进行验证:
再 Push 到 GitHub 试试看:
加密成功,赞。
官方文档原文:
You can sign your work locally using GPG or S/MIME. GitHub will verify these signatures so other people will know that your commits come from a trusted source. GitHub will automatically sign commits you make using the GitHub web interface.
您可以使用 GPG 或 S/MIME 在本地签名您的作品。GitHub 将验证这些签名,以便其他人知道您的提交来自受信任的来源。GitHub 在您使用 GitHub Web 时将自动对 Commits 进行签名。
如转载请在文章尾部添加:
原作者来自 adlered 个人技术博客:https://www.stackoverflow.wiki/