You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级RHEL后通过AMI创建的EC2实例SSH连接被拒绝求助

RHEL 8.7 EC2实例SSH连接被拒绝(Connection refused)排查与解决

问题背景

通过以下流程创建的RHEL 8.7 EC2实例无法通过SSH连接,报错:
ssh: connect to host xx.xx.xx.xx port 22: Connection refused
操作流程:

  • 创建RHEL 8.4版本EC2实例
  • 将实例升级至RHEL 8.7
  • 基于该实例创建AMI
  • 使用该AMI启动新实例

已确认:安全组/网络ACL已开放22端口,原实例sshd服务运行正常。


排查与解决步骤

1. 确认新实例中sshd服务是否正常启动

原实例sshd正常不代表AMI生成的新实例会自动启动服务,可通过以下方式排查:

  • 查看EC2系统日志:进入EC2控制台,选中目标实例,点击「监控」→「获取系统日志」,搜索sshd关键词,检查是否有启动失败、配置错误的日志(如sshd: error: bad configuration option)
  • 若服务未开机自启,可通过EC2串行控制台(已启用前提下)登录实例,执行:
    systemctl enable --now sshd
    

2. 检查sshd配置文件兼容性

RHEL版本升级后,sshd配置可能存在过时参数,导致新实例启动失败:

  • 查看配置文件/etc/ssh/sshd_config,重点排查:
    • 是否存在RHEL 8.7 sshd版本不再支持的旧参数
    • PubkeyAuthentication是否设为yes(密钥登录场景)、PermitRootLogin等参数是否符合登录需求
  • 修复操作:
    1. 备份原配置:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    2. 恢复默认配置:执行dnf reinstall openssh-server -y,覆盖为RHEL 8.7默认的sshd配置
    3. 重启服务:systemctl restart sshd

3. 排查SELinux策略限制

RHEL升级后SELinux策略更新,可能导致sshd端口或文件权限被阻止:

  • 查看SELinux审计日志:grep sshd /var/log/audit/audit.log,检查是否有denied类型的记录
  • 修复操作:
    1. 临时关闭SELinux测试:setenforce 0,若此时能SSH连接,说明是SELinux问题
    2. 永久修复:恢复sshd默认端口上下文或文件权限:
      semanage port -a -t ssh_port_t -p tcp 22
      restorecon -Rv /etc/ssh
      

4. 重新生成合规AMI

创建AMI时原实例未正常关机,可能导致文件系统不一致:

  • 正确生成AMI步骤:
    1. 登录原RHEL 8.7实例,执行shutdown -h now正常关机
    2. 在EC2控制台选中已关机的实例,创建AMI并勾选「停止实例」选项
    3. 使用新生成的AMI启动实例,再尝试SSH连接

内容的提问来源于stack exchange,提问作者Shiva Subramaniam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:44:55