连接断开(在客户端上)后删除不活动的 SSH 进程(在服务器上)

连接断开(在客户端上)后删除不活动的 SSH 进程(在服务器上)

我在客户端上使用以下命令进行端口隧道:

autossh -M 20000 -4 -N -f -R 18822:localhost:22 <user>@<vps-ip>

有时客户端会暂时失去连接或断电,当它重新上线时,VPS 上的 SSH 进程仍然处于活动状态。当客户端再次连接时会出现一个新进程,但端口转发不起作用(我假设第一个进程仍然占用该端口)。

我认为我可以通过进行以下更改来解决此问题:

添加到 VPS 的末尾/etc/ssh/sshd_config

ClientAliveInterval 90
ClientAliveCountMax 2

添加到客户端的末尾/etc/ssh/ssh_config

ServerAliveInterval 90
ServerAliveCountMax 2

这个答案以及我对这些功能的一般理解,我的印象是这会尝试2发送空包的次数90秒,如果失败,那么,180秒后,连接将由于“管道损坏”而终止,VPS上的SSH进程将被终止,并且客户端可以再次使用该端口。

然而现在客户端关闭已经过去20分钟了,VPS上仍然存在SSH进程,占用端口。 (更新:大约 25-30 分钟后该过程消失)

难道我上面的理解有误吗?如果客户端不再回复,我将如何继续检查连接是否仍然存在并关闭它?

相关内容