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

AWS Lightsail Ubuntu实例因SSH守护进程问题无法登录求助

AWS Lightsail Ubuntu实例因SSH守护进程问题无法登录求助

老哥,这种重启后SSH突然失联但Web服务还正常跑的情况真的够闹心的!我给你梳理几个针对性的排查和解决方向,你一步步来试:

1. 先靠Web服务通道排查SSH守护进程状态

既然你的443端口Web应用能正常访问,说明系统内核和基础服务都在运行,大概率是sshd(SSH守护进程)挂了或者配置出问题了。你可以利用现有Web服务的通道来查:

  • 先确认你的PHP环境没禁用系统命令执行(可以先看phpinfo里的disable_functions项,要是没列exec/system这类函数就可以操作)
  • 写个简单的PHP脚本放到Web根目录(比如命名为check_sshd.php),内容如下:
<?php
echo "<pre>";
system("systemctl status sshd 2>&1");
echo "\n---分割线---\n";
system("ps aux | grep sshd 2>&1");
echo "</pre>";
?>

访问这个脚本的URL,就能看到sshd的运行状态。如果显示sshd没在运行,再写个脚本启动它:

<?php
system("systemctl start sshd 2>&1");
system("systemctl enable sshd 2>&1");
echo "已尝试启动sshd并设置开机自启";
?>

2. 试试Lightsail的串行控制台(别用之前的Connect using SSH)

你之前用的「Connect using SSH」是依赖sshd服务的,sshd挂了肯定连不上。你去Lightsail的实例管理页面找「Launch console」——这个是直接连到系统串行端口的浏览器控制台,不管sshd死活,只要系统在跑就能进。
进去后输入系统的用户名密码登录,然后直接操作:

  • 查看sshd状态:sudo systemctl status sshd
  • 检查sshd有没有监听22端口:ss -tulpn | grep sshd
  • 验证sshd配置文件语法:sudo sshd -t(有错误会直接提示,比如配置项写错了)
  • 扒sshd日志找问题:sudo journalctl -u sshd,重点看启动失败或连接被拒的原因——比如是不是开了PermitRootLogin no但你用root登录,或者PasswordAuthentication no但你用密码登录,又或者AllowUsers里没加你的账户

3. 检查实例本地防火墙规则

有时候重启后ufw规则可能被重置或者误改:

  • 查看ufw状态:sudo ufw status,如果是active状态,确认有没有允许22端口的规则
  • 要是没允许,就加上:sudo ufw allow 22,然后重载规则:sudo ufw reload
  • 也可以检查iptables:sudo iptables -L -n | grep 22,确认INPUT链里有没有允许22端口的ACCEPT规则

4. 极端情况:挂载磁盘到其他实例排查

如果上面的方法都进不去,就用Lightsail的快照功能来救:

  • 给当前实例创建一个快照(Snapshot)
  • 要么用这个快照新建一个Lightsail实例,要么把原实例的根磁盘拆下来,挂载到一个你能正常登录的Lightsail Ubuntu实例上
  • 挂载后就能访问原系统的文件了,重点查/etc/ssh/sshd_config配置,还有/var/log/auth.log、/var/log/syslog里的SSH相关日志,总能找到问题根源

备注:内容来源于stack exchange,提问作者Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 09:24:33