从AMI重建EC2实例后单项可达性健康检查失败,无法登录怎么办?
解决从AMI重建EC2实例后健康检查失败、无法SSH/SSM登录的问题
从AMI重新创建EC2实例后,碰到两个棘手问题:
- 两项可达性健康检查有一项未通过
- 既没法用密钥SSH登录,也用不了SSM会话管理器登录
唯一能进去的方式是EC2串行控制台(操作路径:EC2控制台选中目标实例 → 点「连接」按钮 → 选右侧最后一个串行控制台选项)。结合实际排查经验,以下是具体解决步骤:
排查与修复步骤
1. 核对网络配置
- 检查实例所属安全组:
- 入方向要放开SSH(22端口)、SSM通信(443端口)
- 出方向至少允许到SSM服务的443端口(直接开全出站更省心)
- 确认实例有公网IP(如果需要公网SSH访问);私有子网里的实例要配置VPC终端节点供SSM通信
- 检查路由表,确保正确指向互联网网关或NAT网关(需公网访问时)
2. 修复SSH服务(通过串行控制台操作)
- 登录后先查SSH服务状态:
sudo systemctl status sshd # Amazon Linux 2、Ubuntu等systemd系统 # 老系统用这个 sudo service ssh status - 服务没启动的话,启动并设置开机自启:
sudo systemctl start sshd && sudo systemctl enable sshd - 检查
/etc/ssh/sshd_config配置,确保:PubkeyAuthentication yes(开启密钥登录)PasswordAuthentication no(禁用密码登录,按需调整)PermitRootLogin no(禁止root直接登录,更安全)
- 修改配置后重启服务:
sudo systemctl restart sshd
3. 修复SSM Agent(通过串行控制台操作)
- 检查SSM Agent状态:
sudo systemctl status amazon-ssm-agent # Amazon Linux 2 # Ubuntu用这个 sudo systemctl status snap.amazon-ssm-agent.amazon-ssm-agent.service - 没装的话,按系统版本安装(以Amazon Linux 2为例):
sudo yum install -y amazon-ssm-agent sudo systemctl start amazon-ssm-agent && sudo systemctl enable amazon-ssm-agent - 确认实例的IAM角色有
AmazonSSMManagedInstanceCore权限,没有就给实例附加这个权限的角色
4. 检查磁盘与系统完整性
- 查磁盘使用情况,避免根分区满了导致服务异常:
df -h - 根分区满的话,清理日志和临时文件:
sudo journalctl --vacuum-time=7d # 清理7天前的系统日志 sudo rm -rf /tmp/* - 检查系统文件是否损坏(Amazon Linux 2示例):
有损坏就重装对应包sudo rpm -Va
5. 恢复可达性健康检查
- 解决上述问题后,等5-10分钟再看健康检查状态,一般会自动恢复
- 还不行就重启实例:
sudo reboot
内容的提问来源于stack exchange,提问作者ETisREAL
相关产品推荐
相关产品推荐

