You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下gpg-agent安装及GPG密钥密码缓存配置求助

解决Windows下Git提交签名重复输入GPG密钥密码的问题

我明白你现在的困扰——配置了Git提交签名后每次都要输密钥密码,明明装了Gpg4win、gpg-agent也在运行,但就是不缓存密码。我之前在Windows 10上也遇到过类似问题,给你一步步梳理解决办法:

首先先确认你的问题场景:你已经通过Keybase创建并同步了GPG密钥,执行提交时会弹出密码提示:

PS> git commit -m "testing" --allow-empty
You need a passphrase to unlock the secret key for
user: "keybase.io/anthonymastrean <anthonymastrean@keybase.io>"
2048-bit RSA key, ID AD9184C0, created 2015-04-14 (main key ID 293FEB8B)
Enter passphrase:

gpg-agent确实在运行,但缓存功能没生效,而且对着gpg-connect-agent的一堆命令不知道怎么下手。

具体解决步骤

1. 配置gpg-agent的缓存规则

首先要给gpg-agent设置缓存时长,这需要修改它的配置文件:

  • 在Windows上,gpg-agent的配置文件路径是%APPDATA%\gnupg\gpg-agent.conf,如果这个文件不存在,直接新建一个。
  • 打开文件后添加以下内容:
    default-cache-ttl 3600  # 默认缓存1小时(单位:秒)
    max-cache-ttl 86400     # 最长缓存24小时,超过这个时间需要重新输入
    
  • 保存后,重启gpg-agent让配置生效:
    gpg-connect-agent reloadagent /bye
    

2. 确保Git关联正确的GPG程序

有时候Git可能没指向Gpg4win自带的gpg.exe,导致无法调用gpg-agent。执行以下命令设置全局GPG程序路径:

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

如果你的Gpg4win装在其他路径,替换成对应的路径即可。

3. 让gpg-agent随Windows自动启动

为了避免每次打开终端都要手动启动gpg-agent,可以把它加入开机启动项:

  • 按下Win + R,输入shell:startup打开系统启动文件夹。
  • 在里面新建一个批处理文件(比如start-gpg-agent.bat),写入以下内容:
    @echo off
    set GPG_AGENT_INFO=
    start "" "C:\Program Files (x86)\GnuPG\bin\gpg-agent.exe" --daemon
    
  • 保存后,下次开机或打开终端时gpg-agent就会自动运行了。

4. 验证配置效果

现在执行两次测试提交,第一次输入密码后,第二次应该不需要再输入:

git commit -m "test gpg cache" --allow-empty
git commit -m "test cache again" --allow-empty

如果第二次没有弹出密码提示,说明缓存已经生效了。

另外,关于你提到的gpg-connect-agent,一般日常使用不需要直接调用它的复杂命令,除非你需要手动管理缓存密码(比如预设密码,但这有安全风险,不推荐)。如果真的需要,你可以先通过gpg --with-keygrip -K anthonymastrean@keybase.io获取密钥的Keygrip,再用PRESET_PASSPHRASE命令预设,但还是建议用上面的缓存配置更安全。

内容的提问来源于stack exchange,提问作者Anthony Mastrean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:46:18