Technical Notes

Windows环境下配置GitHub GPG签名

使用 GPG 或 S/MIME,您可以在本地对标记和提交进行签名。 这些标记或提交在 GitHub 上标示为已验证,便于其他人信任更改来自可信的来源。 GitHub官方文档:https://docs.github.com/cn/authentication/managing-commit-signature-verification/about-com…

目录
  1. 一、在Windows环境下安装GPG
  2. 下载地址
  3. 配置系统环境变量
  4. 二、使用GPG生成密钥
  5. 1.打开终端或者 Git Bash 输入
  6. 2.设置生成密钥
  7. 三、新增 GPG 密钥到 GitHub 帐户
  8. 1.查看密钥
  9. 2.将GPG密钥添加到GitHub账户
  10. 四、在本地Git中配置密钥
  11. 若提交代码时报错
  12. 在Git中设置gpg的启动路径

使用 GPG 或 S/MIME,您可以在本地对标记和提交进行签名。 这些标记或提交在 GitHub 上标示为已验证,便于其他人信任更改来自可信的来源。

GitHub官方文档:https://docs.github.com/cn/authentication/managing-commit-signature-verification/about-commit-signature-verification

一、在Windows环境下安装GPG

下载地址

https://www.gnupg.org/download/index.html

安装完成后会有两个软件,都是管理密钥的,下文会讲到

配置系统环境变量

注:配置环境变量时选择你所安装软件的路径

此处为默认安装路径

检查环境变量是否生效

终端中输入

gpg --version

输出如下则环境变量生效

二、使用GPG生成密钥

1.打开终端或者 Git Bash 输入

gpg --full-generate-key

2.设置生成密钥

  1. 由于GitHub签名认证密钥必须使用 RSA

    所以我们选择(1)RSA and RSA (default)

  2. 设置密钥尺寸选择4096,密钥尺寸越长加密越强。

  3. 设置密钥的有效期限,这里我选择的是密钥永不过期。

设置密钥的姓名,邮箱,描述

建议设置为GitHub用户名,GitHub绑定的邮箱

检查无误后输入O下一步

这时会弹窗提示你设置管理密钥的密码

此密码以后提交代码时候也要输入,请记牢

输入以下内容则密钥生成完成

打开可视化软件也能看见密钥已生成

三、新增 GPG 密钥到 GitHub 帐户

1.查看密钥

在终端中输入

gpg --list-secret-keys --keyid-format=long

图中 sec 所在行 rsa4096为你的密钥尺寸/后面为你的密钥ID

我这里是3BECCAC113E09805

在终端中输入

gpg --armor --export 你的密钥ID

复制 GPG 密钥,从 -----BEGIN PGP PUBLIC KEY BLOCK----- 开始,到 -----END PGP PUBLIC KEY BLOCK----- 结束。

2.将GPG密钥添加到GitHub账户

单击个人资料照片,然后单击Settings

用户设置侧边栏中,单击 SSH and GPG keys

单击 New GPG key(新 GPG 密钥)

在 "Key"(密钥)字段中,粘贴在终端复制的 GPG 密钥

设置完成

四、在本地Git中配置密钥

1.查找你的GPG 密钥 ID

gpg --list-secret-keys --keyid-format=long

2.在 Git 中设置 GPG 签名密钥

git config --global user.signingkey 3BECCAC113E09805

3.设置Git提交时使用签名密钥

全局设置

git config --global commit.gpgsign true

当前项目设置

git config commit.gpgsign true

若提交代码时报错

gpg: skipped "3BECCAC113E09805": No secret key

在Git中设置gpg的启动路径

git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"