VS Code连接远程服务器遇SSH未知错误,求解决方法
解决VS Code Remote-SSH连接远程服务器失败的问题
你遇到的核心问题是基础SSH连接无法建立(终端直接执行ssh username@10.101.169.215也报错),VS Code的连接失败只是这个底层问题的表现。以下是针对性的排查和解决步骤:
一、先排查基础网络连通性
- 测试服务器可达性:执行
ping 10.101.169.215,如果没有回包,说明你的机器和服务器不在同一网段、服务器停机,或者中间网络有路由/防火墙拦截,需要先解决网络连通问题。 - 测试22端口是否开放:
- 用PowerShell执行:
Test-NetConnection 10.101.169.215 -Port 22,查看TcpTestSucceeded字段是否为True。如果是False,说明服务器22端口未对外开放。 - 或者用telnet:先开启Windows的telnet功能(设置→应用→可选功能→添加功能→搜索telnet客户端安装),然后执行
telnet 10.101.169.215 22,如果连接失败,同样说明端口未开放或网络拦截。
- 用PowerShell执行:
二、排查本地SSH客户端问题
- 升级OpenSSH客户端:你当前使用的是OpenSSH_for_Windows_8.1p1,这个版本存在一些兼容性问题。打开设置→应用→可选功能,找到“OpenSSH客户端”,卸载后重新安装;或者用PowerShell执行以下命令安装最新版:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*' | Add-WindowsCapability -Online - 检查本地防火墙:打开Windows Defender防火墙,进入出站规则,确认没有阻止
ssh.exe的规则。如果有,右键选择“启用规则”;也可以临时关闭防火墙测试(测试完成后务必重新开启)。
三、服务器端配置排查(需联系服务器管理员)
- 确认SSH服务运行状态:在服务器上执行
systemctl status sshd(Linux系统),如果服务未运行,执行systemctl start sshd启动,同时设置开机自启:systemctl enable sshd。 - 确认防火墙放行22端口:
- Ubuntu/Debian系统:执行
ufw status查看规则,若22端口不在列表中,执行ufw allow 22添加规则。 - CentOS/RHEL系统:执行
firewall-cmd --list-ports查看,若没有22/tcp,执行firewall-cmd --add-port=22/tcp --permanent && firewall-cmd --reload。
- Ubuntu/Debian系统:执行
- 确认SSH端口配置:查看服务器的
/etc/ssh/sshd_config文件,确认Port字段是否为22。如果是自定义端口,连接时需要指定端口,比如终端执行ssh username@10.101.169.215 -p 自定义端口,VS Code中则需要在远程连接配置里添加端口信息。
四、其他可能的解决方案
- 关闭代理软件:如果你的机器上运行了VPN、代理工具等,可能会干扰SSH连接,关闭后重新尝试连接。
- 切换VS Code默认终端:打开VS Code,搜索设置
terminal.integrated.defaultProfile.windows,将默认终端改为PowerShell,然后重新发起远程连接。
内容的提问来源于stack exchange,提问作者Nala
相关产品推荐
相关产品推荐

