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

WSL环境下通过SSH打开的VSCode窗口内置Git扩展无法正常工作

WSL环境VSCode源码管理模块SSH Git操作异常解决方案

解决步骤

方案一(一劳永逸)

  • 首先解决自定义密钥识别问题
    编辑WSL环境下的~/.ssh/config文件,添加如下配置,替换为你实际的密钥路径:
Host bitbucket.org
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/你的自定义密钥文件名 # 用默认id_rsa可省略这行
  AddKeysToAgent yes

保存后执行chmod 600 ~/.ssh/config修正文件权限,避免SSH忽略该配置。

  • 配置ssh-agent持久化
    安装keychain工具统一管理ssh-agent的生命周期,不同发行版安装命令如下:
    • Debian/Ubuntu系:sudo apt install keychain
    • Fedora系:sudo dnf install keychain
    • Arch系:sudo pacman -S keychain

之后编辑你当前使用的shell配置文件(Bash对应~/.bashrc,Zsh对应~/.zshrc),在末尾添加:

eval $(keychain --eval --quiet ~/.ssh/你的密钥文件名)

保存后执行source ~/.bashrc(替换为你实际的配置文件路径)生效,重启WSL后仅需在首次打开终端时输入一次密钥密码,全环境所有进程都能调用解锁后的密钥。

  • 调整VSCode配置
    打开VSCode设置页,搜索git.terminalAuthentication,勾选该选项,让VSCode的Git操作复用终端的认证上下文。

完成以上配置后重启VSCode,重新连接WSL环境即可恢复源码管理模块的Git功能。

方案二(临时验证)

如果不想安装额外工具,可每次打开VSCode连接WSL后,先在内置终端执行ssh-add ~/.ssh/你的密钥文件名,输入密码解锁密钥后,不要关闭该终端,此时再使用源码管理模块的Git操作即可正常运行。

异常原因说明

  • 无密码的SSH密钥可正常运行:SSH不需要解锁流程,可直接读取密钥完成认证
  • 有密码的默认密钥无响应:VSCode后台调用Git时不具备唤起终端密码输入框的权限,进程卡在等待密码输入的步骤,无输出也不报错
  • 有密码的非默认密钥抛出权限错误:SSH默认仅读取id_rsa等默认名称的密钥,未在SSH配置中指定自定义密钥路径时,无法找到对应密钥完成认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:36:03