即使通过 ssh 连接,sshd 仍处于非活动状态(死机)

即使通过 ssh 连接,sshd 仍处于非活动状态(死机)

我正在运行一个带有 Debian 11 的 VPS。

我注意到,上面systemctl status ssh说 ssh 守护进程是incative (dead)。我研究了很长一段时间,发现 ssh 使用一种称为“套接字激活”的东西(https://github.com/clearlinux/distribution/issues/72)。这可能解释了为什么 systemd 监听端口 22:

# lsof -i -P -n  | grep LISTEN | grep :22
systemd      1            root   46u  IPv6 32257361      0t0  TCP *:22 (LISTEN)

但是,据我了解,当我通过 ssh 连接时,该服务至少应该显示为活动状态,对吗?事实并非如此。

此外,你如何systemctl不接受任何重新加载请求而只是响应ssh.service is not active, cannot reload. 另外,我该如何停止服务呢?

我最大的问题是,当我运行时,systemctl start ssh服务启动并标记为active (running).但是,当我注销并尝试通过 ssh 重新登录时,它告诉我Connection reset by 46.*.*.* port 22

感谢您对理解这一点的任何帮助。

更新:通过 VNC 访问我的 VPS 后,我发现我的 ssh 服务失败,因为没有/run/sshd目录。# mkdir /run/sshd解决了这个问题。

答案1

有一个单独的.socketsystemd 单元负责 SSH。看来 SSH 是这样处理的不再推荐并且 sid 中​​的包已恢复为通常的.service单元守护程序。

要手动执行此操作,只需.socket在启用该.service单元之前禁用/屏蔽该单元即可。

相关内容