如何在一定时间后终止交互式 ssh 会话

如何在一定时间后终止交互式 ssh 会话

在我的/etc/ssh/sshd_config文件中,我设置了以下参数:

ClientAliveInterval 10
ClientAliveCountMax 3

现在,我从主机ssh对我的服务器(我对/etc/ssh/sshd_config)文件进行了更改。之后我ssh通过运行以下命令重新启动服务:

/etc/init.d/sshd reload

我预计ssh连接会在 30 秒后断开,但现在它已经持续了近一个小时。

有人可以让我知道这里出了什么问题吗?

我使用的是 OpenSSH 版本 6.1。

答案1

我不认为你可以使用 ssh 设置得到你想要的东西。ClientAlive*设置是为了当 ssh 客户端和 ssh 服务器之间的连接变得无响应时,任何一方应该等待多长时间(这些显然是客户端的超时)。

相反,我会使用 Bash 的$TMOUT环境变量让 shell 在一段设定的时间后断开连接。

TMOUT  If  set  to  a  value greater than zero, TMOUT is treated as the 
       default timeout for the read builtin.  The select command terminates 
       if input does not arrive after TMOUT seconds when input is  coming  
       from  a  terminal.   In  an interactive  shell,  the value is 
       interpreted as the number of seconds to wait for input after issuing 
       the primary prompt.  Bash terminates after waiting for that number of 
       seconds if input does not arrive.

参考

相关内容