VS Code远程SSH自动转发Git凭证问题及禁用方法咨询
禁用VS Code Remote SSH的Git凭证转发,改用远程服务器本地令牌
问题背景
使用VS Code Remote Explorer通过SSH远程工作时,远程主机克隆私有GitHub仓库无需验证即可直接访问,主目录自动生成.git-credentials文件;VS Code终端删除该文件后会自动重建,但通过独立SSH客户端删除后克隆会失败。这是因为VS Code默认将本地Git凭证(如GitHub OAuth令牌)转发至远程服务器,通过VSCODE_GIT_ASKPASS_NODE、GIT_ASKPASS等环境变量实现跨会话的凭证共享。
解决办法
方法1:全局禁用VS Code的Git凭证转发
- 打开VS Code设置(快捷键
Ctrl+,/Cmd+,),搜索remote.SSH.enableGitCredentialForwarding - 将该选项设置为
false - 或者直接编辑
settings.json,添加以下配置:
"remote.SSH.enableGitCredentialForwarding": false
- 重新连接远程SSH会话,此时VS Code终端的Git相关转发环境变量会被移除,不再自动生成含本地凭证的
.git-credentials文件。
方法2:配置远程主机使用本地Git凭证助手
若不想全局禁用转发,可单独配置远程主机的Git使用本地存储的凭证:
- 在远程终端执行命令,设置Git使用本地凭证存储:
git config --global credential.helper store
- 首次克隆私有仓库时,Git会提示输入GitHub用户名和远程服务器的个人访问令牌(PAT),输入后凭证会保存到远程主机的
.git-credentials文件 - 也可手动添加凭证到远程的
.git-credentials文件:
https://<你的GitHub用户名>:<远程PAT>@github.com
添加后执行上述git config命令让Git读取该凭证。
验证生效
- 删除远程主机的
.git-credentials文件 - 在VS Code终端执行克隆命令,此时会要求输入远程凭证(或使用已配置的远程存储凭证)
- 检查环境变量,确认
VSCODE_GIT_ASKPASS_NODE、GIT_ASKPASS、VSCODE_GIT_IPC_HANDLE不存在
内容的提问来源于stack exchange,提问作者me.at.coding
相关产品推荐
相关产品推荐

