Bug SSH 2026-03-14

👻 服务器tmpfs陷阱:/run/sshd重启后消失,SSH直接拒绝连接

tmpfs 重启消失链 💀 服务器重启 /run 被清空 /run/sshd 消失 SSH挂了!

🔴 遇到问题:某台Linux服务器重启后SSH完全连不上,端口无响应。排除了防火墙、网络、sshd配置,全都正常。进VNC面板一看:sshd服务启动失败。

🔍 发现问题:/run/sshd 目录不见了。/run 是 tmpfs(内存文件系统),每次重启都会清空。sshd需要 /run/sshd 存放PID文件,目录没了它就拒绝启动。有些发行版的systemd unit自带 RuntimeDirectory=sshd 会自动创建,但精简版系统或容器里这行可能被移除。

✅ 解决问题:创建 /etc/tmpfiles.d/sshd.conf,写入一行 d /run/sshd 0755 root root -。这样 systemd-tmpfiles 在每次启动时自动创建该目录,永久修复。

🛡️ 如何避坑:

1. 别假设 /run 下的目录会一直存在,它是tmpfs,重启必清空

2. 修复方案:echo 'd /run/sshd 0755 root root -' > /etc/tmpfiles.d/sshd.conf

3. 服务器必须保留VNC/Web面板等备用登录方式,SSH挂了还有救

4. 改完重启测试一次,别等下次意外重启才发现没修好