求助:使用AWS EC2连接Linux实例失败,EC2 Instance Connect报错
解决EC2 Instance Connect无法连接Linux实例的问题
一、排查网络配置问题
- 安全组规则:确保实例关联的安全组入站规则允许SSH(22端口)流量,可临时添加
0.0.0.0/0作为源进行测试(测试后建议缩窄到特定IP范围);同时出站规则需允许HTTPS(443端口)流量,Instance Connect需要调用AWS服务接口。 - 子网与公网访问:如果实例在公有子网,必须分配公有IP/弹性IP,且子网路由表包含指向互联网网关的路由;如果在私有子网,需配置NAT网关确保实例能访问公网。
- 网络ACL:入站和出站规则均需允许TCP 22端口的流量,避免ACL阻断连接。
二、检查实例本身配置
- AMI兼容性:确认实例使用的是支持EC2 Instance Connect的系统,比如Amazon Linux 2、Ubuntu 16.04及以上版本;若为自定义或旧系统,需手动安装
ec2-instance-connect包(以Amazon Linux 2为例:sudo yum install ec2-instance-connect)。 - 实例状态:确保实例处于运行中状态,且系统状态检查通过。
- IAM权限:给实例附加
AmazonEC2InstanceConnectPolicy托管策略,或者自定义IAM策略允许ec2-instance-connect:SendSSHPublicKey操作。
三、替代连接方案
如果Instance Connect仍无法正常工作,可以尝试以下方法:
- 本地SSH客户端连接:
- 下载创建实例时生成的密钥对
.pem文件到本地。 - 修改文件权限:
chmod 400 your-key-pair.pem(Linux/macOS),Windows下可通过属性设置只读权限。 - 执行连接命令:
ssh -i "your-key-pair.pem" ec2-user@<实例公有IP或弹性IP>(注意:不同系统用户名不同,Ubuntu用ubuntu,CentOS用centos)。
- 下载创建实例时生成的密钥对
- AWS Systems Manager Session Manager连接:
无需开放22端口,只需实例能访问SSM服务端点,且实例关联的IAM角色包含AmazonSSMManagedInstanceCore托管策略,即可通过AWS控制台直接连接实例。
内容的提问来源于stack exchange,提问作者Bik
相关产品推荐
相关产品推荐

