使用EC2 Instance Connect Endpoint连接私有EC2的SSH失败求助
修复通过EC2 Instance Connect Endpoint SSH连接私有EC2的问题
核心问题:AWS CLI版本不足
aws ec2-instance-connect open-tunnel命令是在AWS CLI v2.12.0版本才正式引入的,你的当前版本为2.11.27,不支持该操作,这是报错的直接原因。
步骤1:升级AWS CLI到兼容版本
在Mac终端执行对应命令升级:
# 若通过Homebrew安装CLI,执行: brew upgrade awscli # 若使用官方安装包,执行: curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /
升级完成后验证版本,确保≥2.12.0:
aws --version
升级后仍报错的额外排查点
验证IAM权限:确保你的AWS身份(用户/角色)拥有以下权限:
ec2-instance-connect:OpenTunnelec2:DescribeInstancesec2:DescribeInstanceConnectEndpoints
可临时附加AmazonEC2InstanceConnectEndpointFullAccess托管策略快速验证。
指定正确区域:在
open-tunnel命令中添加--region参数,确保与EC2实例、Instance Connect Endpoint所在区域一致:
ssh -i <key-pair>.pem ec2-user@i-xxxxxxx -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id i-xxxxxxx --region us-east-1'
- 修正SSH密钥权限:避免密钥文件权限过宽被SSH拒绝:
chmod 400 <key-pair>.pem
- 检查实例端服务状态:若使用Amazon Linux 2/2023实例,通过控制台连接后验证EC2 Instance Connect服务运行正常:
sudo systemctl status ec2-instance-connect
临时替代方案(无法升级CLI时)
安装EC2 Instance Connect SSH客户端插件,自动处理隧道连接:
brew install ec2-instance-connect
使用插件连接实例:
mssh ec2-user@i-xxxxxxx
内容的提问来源于stack exchange,提问作者Jean-Pascal MEWENEMESSE
相关产品推荐
相关产品推荐

