新创建EC2实例通过Session Manager连接失败:SSM Agent未在线
解决EC2实例Session Manager连接报错(SSM Agent未在线)
1. 检查SSM Agent的状态与安装
- 若能通过SSH或其他方式登录实例,先确认Agent运行状态:
- Linux系统执行:
sudo systemctl status amazon-ssm-agent - Windows系统执行:
Get-Service AmazonSSMAgent
- Linux系统执行:
- 若Agent未安装:
- Amazon Linux 2/Amazon Linux 2023默认预装,无需手动安装;
- RHEL/CentOS可通过
yum install amazon-ssm-agent安装; - Ubuntu可通过
apt-get install amazon-ssm-agent安装; - Windows可通过AWS官方提供的对应系统版本安装包进行安装。
- 如果Agent已安装但未运行,启动并设置开机自启:
- Linux:
sudo systemctl start amazon-ssm-agent && sudo systemctl enable amazon-ssm-agent - Windows:
Start-Service AmazonSSMAgent && Set-Service AmazonSSMAgent -StartupType Automatic
- Linux:
2. 验证实例的IAM角色权限
- 确保EC2实例关联的IAM角色包含
AmazonSSMManagedInstanceCore托管策略,该策略涵盖了SSM Agent与服务通信的全部必要权限。 - 若使用自定义策略,需包含以下核心权限:
ssm:UpdateInstanceInformationssmmessages:CreateControlChannelssmmessages:CreateDataChannelec2messages:AcknowledgeMessageec2messages:DeleteMessageec2messages:FailMessageec2messages:GetEndpointec2messages:GetMessagesec2messages:SendReply
3. 检查网络连通性
SSM Agent需要连接到AWS SSM服务端点,分两种场景排查:
- 公网访问场景:实例需具备公网访问能力(比如分配了公网IP,或通过NAT网关访问公网)。可通过以下命令测试连通性:
curl https://ssm.<你的实例区域>.amazonaws.com
返回403状态码说明网络连通正常(仅权限校验失败),超时则表示网络不通。 - 私有子网场景:需在VPC中创建三个必要的VPC端点:
- SSM端点(com.amazonaws.<区域>.ssm)
- EC2 Messages端点(com.amazonaws.<区域>.ec2messages)
- SSM Messages端点(com.amazonaws.<区域>.ssmmessages)
同时确保安全组允许实例与这些端点的HTTPS(443)通信。
4. 检查安全组与NACL配置
- 安全组:出方向需允许HTTPS(443)流量,目标可设置为0.0.0.0/0(公网场景)或VPC端点的CIDR范围(私有子网场景)。
- 网络访问控制列表(NACL):出方向允许443端口的流量,入方向允许SSM服务返回的响应流量(默认NACL允许所有流量,若自定义规则需确认)。
5. 确认实例区域与控制台区域一致
确保你使用Session Manager控制台的区域,与EC2实例所在的区域完全匹配,SSM Agent仅会与本区域的服务端点通信。
内容的提问来源于stack exchange,提问作者Kishor Joshi
相关产品推荐
相关产品推荐

