Gpg4win 使用
上一次发布了 Git 中使用 GPG 进行签名
文章,详情可以查看下面链接
但是在使用过一段时间后,发现此方法有个缺点,就是每次 Commit
都需要输入密码,比较麻烦。
虽然在上一篇文章中有提到过使用 Gpg4win
来离线保存密码,可以避免每次输入。虽然写了,但是实际上并没有使用过,本篇主要介绍如何使用 Gpg4win
。
下载安装
Gpg4win官网 到达官网下载对应的软件。
正常安装即可
生成证书
第一次打开时,没有任何证书,可以选择导入已有的,也可以选择新建
填入对应的名字和邮件地址,并且选择使用密码保护(最好选择上)
打开高级设置,选择 RSA 位数选择 4096 最大位数
证书用途可以选择签名,并设置有效期,可以取消有效期设置
完成创建后,即可在列表中看到已创建的证书
解决 Git Bash
查询不到证书列表
此时如果安装 Git
时,已经附带安装了 GPG,则可能在 Git Bash
中并不能查询到已经创建的证书
因为 Gpg4win
自带有一个 GPG
,而 Git
也带有 GPG
,两个各自玩各自的。导致证书不能列出来。
查询已有的 GPG
位置
使用命令
where gpg
可以查到 gpg 的安装地址,一般会出来两个,一个 git自带的,一个 gpg4win 自带的。
修改 git
下 gpg
的名字
直接定位到 git 安装目录下,在其子文件夹 usr\bin
中将 gpg.exe
改为 gpg_o.exe
文件,这样默认在 git bash 下,将会去找 gpg4win 下面的 gpg
修改 git config
如果上面修改程序名称有效后,可以不进行更改全局的git配置
运行命令
git config --global gpg.program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"
将其全局使用的 gpg 改为 gpg4win
自带的应用程序
再次使用命令
gpg --list-secret-keys --keyid-format=long
即可列出软件中生成的key
配置密码缓存时间
此时,key列表已经可以全部出来了,但是密码照样也是需要每次输入,所以需要配置密码缓存
在界面中点击 Window
, 选择 Configure Keopatra
进行配置
然后在 GnuPG System
中选择 Private Keys
来进行设置
其中有个选项 Set maximum PIN cache lifetime to N seconds
,密码缓存时间,以秒为单位,可以自己设置。
需要注意的是,下面一个选项不能勾选,否则设置无效 Do not use the PIN cache when signing
。