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

连接多AWS账户时出现ssh: connect to host port 22 No route to host错误如何解决

ssh: connect to host abc.com port 22: No route to host

错误核心成因

该报错本质是本地设备无法找到通往目标主机的网络路由,结合切换多个AWS账户的操作场景,常见触发原因如下:

  • 账户切换后本地VPN/SSM会话配置未同步更新,原有网络隧道指向旧账户私有网络,无法路由到新账户下的目标资源
  • 目标EC2实例关联的安全组/网络ACL未放开你当前公网IP的22端口入站规则,或规则绑定到了旧账户的IP/安全组资源
  • 切换账户时执行的自动配置脚本修改了本地路由表,指向错误的网关
  • 目标EC2实例处于停止/初始化失败状态,未分配可访问的公网IP/弹性IP
排查流程

1. 验证基础网络连通性

首先执行ping abc.com确认目标域名是否可以正常解析到IP,再执行traceroute abc.com(Windows环境替换为tracert abc.com)查看路由中断节点,判断问题出在本地网络还是AWS侧。
如果解析出来的IP和你目标EC2的公网IP不一致,先检查本地hosts文件是否存在旧的静态绑定记录,或DNS缓存未更新,可执行nslookup abc.com核对官方解析结果。

2. 核对AWS侧配置

  • 确认当前登录的AWS账户为目标实例所属账户,检查目标EC2实例状态为运行中,且已分配公网IP/弹性IP
  • 检查实例关联的安全组入站规则,确认已放开你当前公网IP的22端口入站权限,源地址不要配置为旧账户的安全组ID或私有网段
  • 检查实例所属子网的网络ACL,确认入站、出站规则都未拦截22端口的流量
  • 确认实例所属VPC路由表存在指向互联网网关的公网路由,若通过私有网络连接,确认VPN/Direct Connect/SSM会话的路由配置正确

3. 排查本地配置

  • 若使用AWS SSM Session Manager连接SSH,确认本地AWS凭证已切换到目标账户,且~/.ssh/config内的代理配置对应了正确的账户ID和区域
  • 检查本地防火墙/杀毒软件是否拦截了22端口的出站请求,可临时关闭防火墙测试连通性
  • 若切换账户时执行过网络配置脚本,执行ip route(Linux/macOS)或route print(Windows)查看路由表,确认目标IP的路由指向正确的网关
快速修复方案
  • 清除本地DNS缓存:Linux/macOS执行sudo systemd-resolve --flush-caches,Windows执行ipconfig /flushdns
  • 重新切换AWS凭证,执行aws sts get-caller-identity确认当前使用的是目标账户
  • 如为临时网络波动,重启本地路由器或切换网络环境测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:06:03