先确认是否网络问题:用ssh -v user@ip看连接卡在哪个阶段,telnet ip 22测端口连通性,远程执行sudo ss -tlnp | grep :22验证sshd监听状态;ping通但ssh不通常见于ICMP与TCP路由策略不同、WiFi拦截SYN包、GSSAPI认证延迟或代理劫持22端口。

Remote-SSH连接卡在“Setting up SSH Host”怎么确认是网络问题
先别急着改配置,直接用终端验证基础链路是否通。VSCode Remote-SSH 卡在这个阶段,90% 是本地到服务器的 TCP 层或认证层没走通,而不是 VSCode 自身故障。
执行这三步:
-
ssh -v user@your.server.ip—— 加-v看详细日志,重点观察是否卡在debug1: Connecting to ...(连不上 IP)、debug1: Connection established(连上了但卡在密钥交换)、还是到了debug1: Authentication succeeded之后才断(说明问题出在 vscode-server 启动环节) -
telnet your.server.ip 22或nc -zv your.server.ip 22—— 如果提示Connection refused,说明端口不通;如果超时(Operation timed out),才是典型网络阻断 - 在远程服务器上运行
sudo ss -tlnp | grep :22—— 确认sshd确实在监听,且没被防火墙(如ufw或云平台安全组)拦住
为什么 ping 通但 ssh 连不上?常见网络干扰点
很多同学发现 ping 没丢包、浏览器能打开服务器上的网页,但 ssh 就是连不上。这是因为:
- ICMP(ping)和 TCP(ssh)可能走不同策略路由,企业网/运营商常对 22 端口限速或 QoS 降级
- 某些 WiFi 路由器或公共热点会主动拦截或重置长连接的 TCP SYN 包,尤其在跨运营商场景下
- Windows 的 OpenSSH 客户端默认启用
GSSAPIAuthentication,若域控不可达会额外耗时甚至失败,可临时禁用:ssh -o GSSAPIAuthentication=no user@ip - 本地开了代理工具(Clash、Surge、Proxifier 等)但未放行 22 端口,导致 SSH 流量被劫持后无法建立 handshake
VSCode 的 remote.SSH.connectTimeout 不是万能解药
这个配置只控制 VSCode 主进程等待 SSH 连接建立的秒数,默认是 15 秒。但它不解决根本问题:如果网络本身存在间歇性丢包或 TLS 握手干扰,单纯调高 timeout 只会让失败更慢,不会变成功。
真正该调的是底层 SSH 行为:
- 在
~/.ssh/config中为该主机添加:Host your.alias<br> HostName your.server.ip<br> ConnectTimeout 5<br> ServerAliveInterval 30<br> ServerAliveCountMax 2
-
ConnectTimeout 5让底层更快放弃死连接,避免卡住整个 VSCode 进程 -
ServerAliveInterval和ServerAliveCountMax防止 NAT 超时断连,这对家庭宽带或云服务器出口 NAT 尤其关键
手动触发日志才能看到真实失败点
VSCode 默认隐藏关键错误细节。必须打开 Remote-SSH 日志才能定位到底是哪一环断了:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Remote-SSH: Show Log并执行 - 连接失败后,日志里出现
still downloading—— 说明远程服务器已连上,但vscode-server下载被中断(大概率是服务器出站网络受限或磁盘满) - 出现
Failed to download+ENOTFOUND或ETIMEDOUT—— 说明本地无法访问 GitHub 的 release 域名(github.com或objects.githubusercontent.com),需检查 DNS 或代理设置 - 出现
process exited with code 126或Permission denied—— 往往是远程~/.vscode-server目录权限混乱,不是网络问题,别再瞎调 proxy
网络问题最隐蔽的形态,是它只在特定路径上失效——比如你从公司内网连云服务器失败,但从手机热点就能连。这时候不要怀疑 VSCode,要怀疑中间某段链路是否对 SSH 流量做了特殊处理。查日志、看 ssh -v 输出、比对不同网络下的行为,比反复重启插件有用得多。


















