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

WSL2环境下VSCode使用GPG密钥签名Git commit失效如何解决

WSL2 Ubuntu 环境 VSCode Git GPG 提交签名故障修复方案

故障表现

error: gpg failed to sign the data

  • Git CLI 单独执行提交签名正常,仅VSCode调用时报错
  • CLI 输入过GPG密码、缓存有效期内VSCode可正常提交,缓存失效后故障复现
  • VSCode触发提交时弹出的密码输入窗口无法识别输入内容

根因说明

WSL默认使用TTY模式的pinentry密码输入程序,VSCode调用Git的进程上下文未绑定TTY,导致密码输入无法正常传递给gpg-agent。

修复步骤

  1. 安装兼容的密码输入组件
    执行命令:
    sudo apt update && sudo apt install -y pinentry-gnome3 pinentry-curses

  2. 配置gpg-agent参数
    编辑~/.gnupg/gpg-agent.conf文件,添加如下配置:

pinentry-program /usr/bin/pinentry-curses
allow-loopback-pinentry
default-cache-ttl 31536000
max-cache-ttl 31536000

注:如需调整密码缓存时长可自行修改ttl数值,单位为秒,上述配置为缓存1年。

  1. 配置Shell环境变量
    编辑你当前使用的Shell配置文件(bash对应~/.bashrc,zsh对应~/.zshrc),添加如下内容:
export GPG_TTY=$(tty)
  1. 重载配置生效
    依次执行命令:
source ~/.bashrc # 使用zsh的用户替换为 source ~/.zshrc
gpg-connect-agent reloadagent /bye
  1. 验证效果
    关闭所有已打开的终端会话,重启VSCode后直接执行提交操作,按提示输入GPG密钥密码即可正常完成签名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:03:02