无法通过SSH及EC2 Instance Connect连接Amazon EC2上的SLES15 SP4实例
解决Amazon EC2 SLES15 SP4实例SSH/EC2 Instance Connect连接失败问题
系统内SSH服务排查
- 将故障实例的根卷挂载到一台正常运行的SLES EC2实例上,查看
/var/log/secure或/var/log/messages日志,定位SSH服务启动失败原因或连接拒绝的具体记录 - 检查
sshd服务状态:查看/etc/systemd/system/sshd.service的配置,确认服务已设置为开机自启且处于运行状态 - 验证
/etc/ssh/sshd_config关键配置:- 确认
PermitRootLogin设置为yes或prohibit-password(使用密钥登录时) - 若尝试密码登录,需确保
PasswordAuthentication为yes - 检查
AllowUsers/DenyUsers规则,确认未限制ec2-user或root账号
- 确认
EC2 Instance Connect适配检查
- SLES15 SP4默认可能未预装EC2 Instance Connect组件,挂载故障卷后,检查是否存在
ec2-instance-connect包;若未安装,可在正常SLES实例下载对应rpm包,拷贝到故障卷的/tmp目录,后续挂载回原实例后安装 - 确认
sshd_config中ChallengeResponseAuthentication配置为yes,这是EC2 Instance Connect正常工作的必要条件
密钥与用户权限验证
- 确认实例创建时指定的密钥对对应的公钥,已正确写入
/home/ec2-user/.ssh/authorized_keys或/root/.ssh/authorized_keys文件 - 检查权限设置:
.ssh目录权限必须为700,authorized_keys文件权限必须为600,权限过宽会触发SSH的安全限制导致连接失败
网络规则补充验证
- 尽管22端口已开放,仍需确认安全组入站规则的源IP范围是否覆盖你的客户端IP(或设置为
0.0.0.0/0做测试) - 检查实例所在子网的网络ACL(NACL),确保入站和出站规则均允许22端口的TCP流量
内容的提问来源于stack exchange,提问作者pastrana
相关产品推荐
相关产品推荐

