Ubuntu 18.04 EC2实例apt无人值守更新后重启无法SSH连接排查
SSH服务启动失败排查方向
1. 服务启动日志与依赖排查
- 挂载故障实例系统盘到正常EC2实例后,chroot进入故障实例的根文件系统,执行
sshd -t -d查看详细的启动校验debug日志,定位具体报错点 - 查看故障实例的
/var/log/apt/history.log,定位无人值守更新涉及的软件包,重点检查openssh-server、systemd、libpam相关包的版本变化 - 执行
systemctl list-dependencies ssh.service检查SSH服务的所有启动依赖单元,确认无依赖单元启动失败的情况 - 查看SSH服务专属启动日志,执行
journalctl -u ssh.service -b -1(-b -1表示上一次启动的日志),提取sshd启动失败的具体错误码和报错信息
2. PAM与安全策略排查
- 检查
/etc/pam.d/sshd配置文件是否被更新修改,是否存在无效的PAM模块引用规则,可替换为同版本Ubuntu 18.04的默认sshd PAM配置后测试启动 - 检查AppArmor策略是否限制sshd运行,执行
aa-status查看是否有sshd相关的强制策略,临时禁用对应策略后测试启动 - 验证sshd相关文件权限符合要求:
/etc/ssh/sshd_config权限为644,所有/etc/ssh/ssh_host_*_key私钥文件权限为600,所有者均为root,权限错误会直接导致sshd启动终止
3. 网络与端口配置排查
- 检查系统启动阶段是否有其他进程抢占22端口,可在rc.local中加入
ss -tulpn > /tmp/port_log.log配置,重启后挂载磁盘查看端口占用日志 - 检查
/etc/hosts.allow、/etc/hosts.deny配置是否被更新修改,是否存在拦截sshd服务的规则 - 确认sshd配置的监听地址有效,若配置了指定IP监听,需检查对应IP是否在系统启动后成功挂载到网卡上
内容的提问来源于stack exchange,提问作者Kranthi U
相关产品推荐
相关产品推荐

