Gpg4win 使用

上一次发布了 Git 中使用 GPG 进行签名 文章,详情可以查看下面链接

Git 使用 GPG keys 进行签名

但是在使用过一段时间后,发现此方法有个缺点,就是每次 Commit 都需要输入密码,比较麻烦。

虽然在上一篇文章中有提到过使用 Gpg4win 来离线保存密码,可以避免每次输入。虽然写了,但是实际上并没有使用过,本篇主要介绍如何使用 Gpg4win

下载安装

Gpg4win官网 到达官网下载对应的软件。

正常安装即可

生成证书

第一次打开时,没有任何证书,可以选择导入已有的,也可以选择新建

填入对应的名字和邮件地址,并且选择使用密码保护(最好选择上)

打开高级设置,选择 RSA 位数选择 4096 最大位数

证书用途可以选择签名,并设置有效期,可以取消有效期设置

完成创建后,即可在列表中看到已创建的证书

解决 Git Bash 查询不到证书列表

此时如果安装 Git 时,已经附带安装了 GPG,则可能在 Git Bash 中并不能查询到已经创建的证书

因为 Gpg4win 自带有一个 GPG ,而 Git 也带有 GPG,两个各自玩各自的。导致证书不能列出来。

查询已有的 GPG 位置

使用命令

where gpg

可以查到 gpg 的安装地址,一般会出来两个,一个 git自带的,一个 gpg4win 自带的。

修改 gitgpg 的名字

直接定位到 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

posted @ 2023-02-03 16:59  SpiritLing  阅读(358)  评论(0编辑  收藏  举报