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

VS Code远程SSH连接失败:反复要求密码且权限被拒

解决VS Code Remote SSH反复要求输入密码且权限拒绝的问题

问题根源

你的SSH配置中,ProxyJump proxy_host未指定代理主机的登录用户,导致SSH默认使用Windows系统的域用户名(domain\username)尝试连接代理主机,但代理主机的合法用户并非这个带域的账号,进而触发密钥认证失效,即使输入正确密码也会因用户不匹配被拒绝。

修复步骤

1. 完善SSH配置,明确代理主机的用户

修改C:\Users\username\.ssh\config文件,给代理主机指定正确的登录用户,两种方式任选其一:

  • 直接在ProxyJump中指定用户:
Host primary_host
    HostName primary_hostname
    User username
    ProxyJump username@proxy_host
  • 单独配置代理主机条目(便于后续复用):
Host proxy_host
    HostName proxy_hostname
    User username

Host primary_host
    HostName primary_hostname
    User username
    ProxyJump proxy_host

2. 确认密钥在代理主机的授权列表中

  • 检查本地私钥(默认是id_rsa或id_ed25519)对应的公钥,是否已添加到代理主机的~/.ssh/authorized_keys文件里。
  • 若代理主机需要单独的密钥,可在配置中用IdentityFile指定:
Host proxy_host
    HostName proxy_hostname
    User username
    IdentityFile C:\Users\username\.ssh\id_rsa_proxy

Host primary_host
    HostName primary_hostname
    User username
    ProxyJump proxy_host
    IdentityFile C:\Users\username\.ssh\id_rsa_primary

3. 清除VS Code的SSH缓存

VS Code可能留存了旧的连接信息,按以下步骤清理:

  • 关闭所有VS Code窗口
  • 删除%USERPROFILE%\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-ssh目录下的缓存文件
  • 重启VS Code后重新尝试连接

4. 用命令行验证SSH连接

先在Windows命令行(cmd/PowerShell)测试代理主机的密钥登录是否正常:

ssh username@proxy_host

确认能正常登录后,再测试通过代理连接目标主机:

ssh -J username@proxy_host username@primary_hostname

如果命令行连接正常,VS Code的Remote SSH就能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:22:39