AWS ECS execute-command执行/bin/sh无报错但未启动Shell求助
排查AWS ECS execute-command无输出且未进入Shell的问题
以下是针对该问题的具体排查步骤:
确认SSM Agent部署与权限配置
- 检查容器镜像中是否已安装SSM Agent,要求版本不低于3.2.1200.0;部分官方镜像(如Amazon Linux 2)默认预装,但自定义镜像需手动添加
- 验证ECS任务角色已关联
AmazonSSMManagedInstanceCore权限策略,或自定义策略包含以下权限:ssmmessages:CreateControlChannel、ssmmessages:CreateDataChannel、ssmmessages:OpenControlChannel、ssmmessages:OpenDataChannel
检查网络连通性
- 确认任务所在VPC具备互联网访问能力(通过NAT网关或互联网网关),SSM Agent需连接AWS SSM服务端点
- 检查任务所属安全组允许出站443端口流量到SSM服务(us-west-2区域端点为
ssm.us-west-2.amazonaws.com) - 若使用VPC端点,需确保已创建SSM、SSM Messages、ECS Messages三类VPC端点,且端点安全组允许相关流量
验证命令与参数准确性
- 核对
--cluster、--task、--container参数值是否完全正确,避免拼写或格式错误 - 确认容器内存在指定的Shell路径:部分轻量镜像(如Alpine)仅提供
/bin/ash,可尝试替换命令为"/bin/ash";若容器安装了bash,也可尝试"/bin/bash"
- 核对
查看日志定位问题
- 查看ECS任务的CloudWatch日志,检查SSM Agent的启动日志与运行报错信息
- 登录AWS Systems Manager控制台,在Session Manager模块查看会话记录,获取失败会话的详细错误信息
检查AWS CLI版本
- 执行
aws --version确认CLI版本,旧版本可能存在兼容性问题,建议升级至最新版:pip install --upgrade awscli
- 执行
验证终端交互支持
- 确保执行命令的终端支持交互式会话,避免在非交互式环境(如自动化脚本)中运行该命令
- 尝试显式添加
--session-type interactive参数,部分场景下需指定该参数触发交互式会话
内容的提问来源于stack exchange,提问作者committedandroider
相关产品推荐
相关产品推荐

