目录
2020的第一篇。新的一年,祝好。
生成密钥对并添加到 Github
这一步非常简单,可以参考官方教程,以下提供简略步骤。
使用 Git Bash 生成密钥对
Windows 下可以使用 Git 图形客户端(Git Bash)中的 gpg
命令,Linux 和 Mac 下可以用 Terminal 安装 gpg
工具。
Windows 下生成密钥对的命令如下:
$ gpg --full-generate-key
这里有几个需要注意的地方:
- Github 的密钥需要使用
4096
bits; - user name 填写 Github 的登录名;
- 如果开了 private mail 的话 mail 填写 Github 提供的那个 noreply mail 地址。
导出公钥
列出所有的密钥,并获取密钥 ID
$ gpg --list-secret-keys --keyid-format LONG
----------------------------------
sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10
以上例子中, 3AA5C34371567BD2
就是所需要的密钥 ID。
使用 ASCII 格式导出公钥:
$ gpg --armor --export 3AA5C34371567BD2
将输出中的 -----BEGIN PGP PUBLIC KEY BLOCK-----
和 -----END PGP PUBLIC KEY BLOCK-----
和他们之间的所有内容复制到 Github 设置中,添加 GPG 密钥完成。
告知 Git 要使用 GPG 签名
可以参考这篇,以下提供简略步骤。
编辑 .gitconfig
文件
打开 .gitconfig
文件
# 方法一
$ git config --global --edit
# 方法二
$ vim C:\Users\xxx\.gitconfig
添加以下内容
[user]
name = YOUR_GITHUB_NAME #用户名
email = YOUR_GITHUB_EMAIL #邮箱
signingkey = YOUR_SIGNING_KEY #GPG密钥ID
[gpg]
program = GPG_BINARY_PATH #GPG程序路径
[commit]
gpgsign = true #对Commit启用GPG签名
这里有一个需要注意的地方:
- Windows 下的 GPG 程序路径需要这样的格式:
C:\\Program Files\\Git\\usr\\bin\\gpg.exe
(注意双反斜杠\
),否则会出现配置文件错误fatal: error in line xx
。
安装 GPG 图形客户端
!!! 重点注意:Windows 和 Mac 系统下需要安装一个 GPG 图形客户端才能正常使用 GPG 签名。否则在 Commit
时会出现类似以下的错误,这是缺少输入密钥密码的地方所导致的。
Commit failed - exit code 128 received, with output: 'error: gpg failed to sign the data
fatal: failed to write commit object'
Mac 下推荐安装 Mac GPG,Windows 下推荐安装 Gpg4win。以上两个都是 GnuPG 官网推荐的 GPG 管理工具。
完成以上三个步骤之后回到 Github Desktop 测试 Commit
,会弹出一个对话框要求输入 GPG 密钥密码,说明配置成功。
- - 全文终 - -