使用 Git 和 GnuPG 对提交进行签名过程中,无法找到 key 的一种解决思路

最近由于进行了系统重装,重新安装了开发环境,其中有涉及对 Git 和 GnuPG 的重新安装配置。

系统环境为 Windows 11 x64。

以下可能只是其中一种情况以及它的解决方法,不一定适合所有类似情况。

按照通常过程使用 gpg.exe 生成 Key 后,将 ID 引入 Git 配置项中,比如在 Git 全局配置中设置中设置:

git config --global user.signingkey "**********"
git config --global commit.gpgsign true

以及其他设置(如名称和邮件地址)后,Git 在本地提交代码后提示类似问题:

gpg: skipped "************": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

使用

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

输出结果中可以找到星号处的 Key ID,说明 Key 确实可以通过 gpg 找到。

我碰到的问题是 Git 可能没有找到正确的 gpg.exe 文件位置,通过设置以下设置方法手工指定 gpg 的位置:

git config --global gpg.program "X:\{SOMEPATH}\GnuPG\bin\gpg.exe"

在做完如上设置后,Key 可正常根据 ID 找到。

参考资料:

Setting Up GPG on Windows (The Easy Way) | Tower Blog

How to sign your git commits | endjin - Azure Data Analytics Consultancy UK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值