断开与用户端 IBM 4690 的 SSH 会话

断开与用户端 IBM 4690 的 SSH 会话

我需要在 45 秒不活动后断开 SSH 会话。

IBM 4690 上的 SSH 服务器设置是:

 TCPKeepAlive no
 ClientAliveCountMax  3
 ClientAliveInterval  15

但是当我在客户端(我的 PC)进行数据包捕获时,我看到一些由服务器发起的流量,然后我的 PC 确认了该数据包。我想是因为这个 SSH 会话永远不会超时。

当我使用相同的 SSH 客户端连接到 Cisco 路由器时,我看不到此流量。并且会话超时。

问题:

我不知道这是否可行,但
如果用户没有按任何按钮,我该如何让 SSH 超时(或客户端强制关闭连接)。或者窗口强制关闭或以某种方式在 45 秒内终止/断开会话。

谢谢,

答案1

ClientAliveInterval设置是您看到从服务器到客户端的定期数据包的原因。它导致服务器定期向客户端发送数据包,客户端应该对此做出响应。如果客户端未能响应足够多次,服务器将断开连接。

换句话说,这些ClientAlive设置只是测试服务器之间的通信程序和客户程序。它将检测已断开网络连接且不再响应数据包的客户端。它不会检测客户端已启动并正在运行但用户正在观看猫视频的情况。

如果服务器是 unix 服务器,您可以考虑在其 shell 上设置超时。狂欢和其他类似 sh 的 shell 都有一个变量TMOUT,可以设置为使空闲会话超时。基于韓軟體有一个autologout设置。请参阅这个问题进一步了解。我认为这两种方法都只会删除那些在命令行提示符下处于空闲状态的用户;它不会删除正在运行程序的用户。

如果这不可接受,您可以研究根据who或类似的输出编写脚本。

相关内容