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

Windows下Git提交签名首次尝试随机失败问题求助

解决Windows下gpg4win+Git签名时gpg-agent启动延迟/随机失败问题

一、设置gpg-agent开机自启

  • 打开「任务计划程序」,点击「创建基本任务」
  • 名称填gpg-agent 开机启动,下一步后触发器选择「当我登录时」
  • 操作选择「启动程序」,程序或脚本路径填C:\Program Files (x86)\GnuPG\bin\gpg-agent.exe(64位安装路径可能为C:\Program Files\GnuPG\bin\gpg-agent.exe,请根据实际调整),添加参数--daemon --enable-ssh-support
  • 完成前勾选「打开此任务属性的对话框」,切换到「设置」标签,勾选「如果任务失败,每隔5分钟重试」,重试次数设为2次,避免开机时因系统资源不足导致启动失败

二、配置Git与gpg-agent的通信参数

  1. 配置环境变量:

    • 若使用Git Bash,打开用户目录下的.bashrc文件,添加以下内容:
      GPG_TTY=$(tty)
      export GPG_TTY
      
    • 若使用系统终端(CMD/PowerShell),在系统环境变量中添加GPG_TTY,值设为当前终端的TTY路径(PowerShell可通过$tty查看,或直接填\\.\pipe\gnupg\pty1)
  2. 修改gpg-agent配置:

    • 打开%APPDATA%\gnupg目录下的gpg-agent.conf文件(无则新建),添加:
      default-cache-ttl 3600
      max-cache-ttl 86400
      pinentry-program "C:\Program Files (x86)\GnuPG\bin\pinentry-qt.exe"
      enable-ssh-support
      
    • 保存后执行gpgconf --reload gpg-agent使配置生效

三、修复IPC连接失败问题

  • 更新gpg4win:卸载旧版本,安装最新版gpg4win,旧版本存在IPC通信的已知bug
  • 重置gpg-agent状态:关闭所有终端和Git相关程序,打开CMD执行:
    gpgconf --kill all
    gpg-agent --daemon
    
    之后执行gpg --list-keys测试是否能正常连接
  • 检查目录权限:确保%APPDATA%\gnupg目录的读写权限属于当前用户,右键目录→「属性」→「安全」标签,确认当前用户有完全控制权限

测试验证

重启电脑后,先执行gpg --list-keys,若能快速返回密钥信息,说明agent已正常启动;再尝试Git签名提交,验证是否不再出现延迟或失败情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:00:01