如何防止服务器端出现孤立的“sshd”进程?

如何防止服务器端出现孤立的“sshd”进程?

我在客户端机器上有许多进程,它们ssh连接到服务器机器并执行操作。有时这些客户端进程会因某种原因意外结束。这总是会sshd在服务器端留下一个进程在运行。我希望那个进程死掉。

请注意,这与断开闲置的进程。空闲进程是指没有用户数据在流动。例如,运行 ssh 的未使用的终端窗口处于空闲状态,但并未断开连接。这不是我想要终止的情况——我想要的只是闲置的连接才能维持活力。

A断开连接该过程是客户端不再打开套接字的过程。

理论上,服务器端可以通过ssh/sshd联合使用边带中的心跳来检测这一点。如果任何一方无法听到另一方的心跳,它可能会自杀。但我找不到这样做的选项。(有很多选项听起来像这样做,但实际上不是。)

显然,也可以定期sshd在服务器端“收获”孤立的 s。我也想避免这种情况。对于任何收获期,我都可能有许多孤立连接(例如,在并行处理情况下)。此外,我必须采取一些措施来防止自己杀死正在使用的sshd实例,如果我有办法检测到的话。

我怎样才能sshd检测到断开连接的客户端并自行终止?

答案1

的手册页sshd_config将告诉您设置ClientAliveCountMax&ClientAliveInterval应按您希望的方式进行。

ClientAliveCountMax默认为3,也就是说你只需要设置ClientAliveInterval一个合适的大小。

相关内容