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

Azure Windows虚拟机VS Code Remote-SSH连接超时问题求助

Azure Windows虚拟机VS Code Remote-SSH连接超时问题求助

遇到这种SSH连接超时的情况确实挺头疼的,结合你描述的背景(已经能通过Bastion隧道RDP访问VM,装了OpenSSH但SSH连15秒超时),我整理了几个实用的排查方向和解决办法,你可以一步步试试:

  • 先确认OpenSSH服务是否正常运行
    远程RDP进VM后,按Win+R输入services.msc打开服务管理器,找到「OpenSSH SSH Server」服务:

    • 检查状态是不是「正在运行」,如果没启动就右键启动;
    • 把启动类型改成「自动」,避免VM重启后服务自动关闭。
  • 双防火墙排查:Windows本地+Azure网络安全组
    这是最常见的端口不通原因:

    • Windows Defender防火墙:打开「高级设置」,确认存在允许「OpenSSH SSH Server (sshd)」的入站规则;如果没有,手动新建一条规则,允许TCP 22端口入站(测试阶段可以先设为允许所有IP,后续再按需限制)。
    • Azure网络安全组(NSG):登录Azure门户找到VM对应的NSG,检查入站规则里有没有优先级较高的「允许TCP 22端口」规则。如果没有,添加入站规则:源可选你的本地公网IP(更安全)或「任何」,目标端口填22,协议选TCP,动作设为「允许」。
  • 检查Bastion隧道的端口配置
    你用Bastion连RDP正常,但SSH可能没配置对应隧道:
    用Azure CLI重新创建包含22端口的隧道,命令类似:

    az network bastion tunnel --name <你的Bastion名称> --resource-group <资源组名称> --target-resource-id <VM的资源ID> --resource-port 22 --port 2222
    

    然后VS Code的SSH配置要指向本地的2222端口,而不是直接连VM的公网IP。

  • 验证OpenSSH配置文件参数
    打开VM上的C:\ProgramData\ssh\sshd_config(需要管理员权限),检查几个关键参数:

    • Port 22:确认端口没被修改成其他值;
    • ListenAddress 0.0.0.0:允许所有IP访问,避免限制了隧道的IP;
    • 如果用密码登录,确保PasswordAuthentication yes;用密钥登录的话,确认PubkeyAuthentication yes,且你的公钥已经放到VM的C:\Users\<你的用户名>\.ssh\authorized_keys文件里。
      修改后记得重启OpenSSH服务生效。
  • 测试端口连通性
    在本地CMD里用telnet localhost 2222(如果用Bastion隧道)或telnet <VM公网IP> 22测试端口是否能连通:

    • 连不通:回到防火墙/NSG/隧道配置排查;
    • 能连通:检查VS Code的SSH配置是否正确,或者尝试重启VS Code再连接。

备注:内容来源于stack exchange,提问作者DiegoV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:34:32