设置ssh客户端在不活动之后断开连接

我想configuration我的SSH客户端在一段时间不活动后从特定的主机断开连接。 我没有对服务器的root权限。 我需要从客户端,而不是服务器做到这一点, 服务器上的用户由多人共享。

理想情况下,我可以通过我的sshconfiguration文件做到这一点,以便我可以源代码控制文件,并将其携带到我的许多主目录。

我已经在我的SSHconfiguration文件(〜/ .ssh / config)中尝试了以下条目:

Host somehostname Hostname somehostname User someuser ConnectTimeout 60 

但是,我login后,等待> 60秒,我仍然连接。

我在用着:

 $ ssh -v OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012 

正如ssh_config的手册页所述, ConnectTimeout

指定连接到SSH服务器时使用的超时(秒),而不是使用默认系统TCP超时。 该值仅在目标处于closures状态或真正无法访问时使用,而不是在拒绝连接时使用。

等同于例如bash的$TMOUTvariables,也就是当交互式会话空闲时从shell自动注销。 我不认为你可以按自己想要的方式做任何事情(即客户端)。

这里有几个因素在起作用:

  • sshd服务器的CLientAliveIntervalCLientAliveInterval设置确定客户端在断开连接之前可能保持无响应状态的时间。
  • 客户端的ServerAliveIntervalServerAliveCountMax设置将确定在客户端断开连接之前服务器可能保持无响应状态的时间。

你可以改变你的客户端的服务器相关设置,但是不会覆盖服务器上的客户端设置,因为客户端和服务器都会按照设定的时间间隔发送一个keepAlive消息,所以你必须更改服务器上的设置。