ssh会话空闲超时


9

我们进行大部分开发工作的Solaris机器都有一个烦人的习惯,那就是超时SSH会话。客户端是我的Ubuntu桌面,Solaris桌面还是Windows桌面(putty)都没有关系;共同的因素是大型Solaris计算机。

我有什么办法可以阻止这种情况的发生?午休时,令人烦恼的是,您打开并精巧配置的​​终端会话都被冻结了,因此您需要全部杀死它们并重新建立所有上下文。

Answers:


8

是。配置SSH发送keepalive数据包


我们已经在/ etc / ssh / sshd_config中有了“ KeepAlive Yes”。但是它没有ClientAliveInterval值;所以我已经添加了,我们将看看情况如何。
安德鲁

1
还值得注意的是,您也可以用其他方法来做到这一点。如果您无法更改服务器配置,则可以使ssh客户端发送保活数据包,而不是使用ServerAliveInterval。
SpoonMeiser

该文章的位置已更改。这是当前的内容:forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir 2010年

2

我发现keepalive行为不太有效。我尝试将ServerAliveInterval添加到〜/ .ssh / config脚本中,但它与git配合使用效果不佳。

我最终要做的是在“屏幕”状态栏中添加时间戳。这足以保持连接状态。


如果您希望此功能不在screen(1)之外,请查看Spinner
Drew Stephens

1

您也可以配置Putty发送保持活动的数据包。

在“设置”,“连接”,“保持活动之间的秒数”中。


1

首先,您需要确定是退出您的外壳还是ssh。要进行测试,请ssh到远程计算机中,并且vi或以下文件。

如果很长一段时间后您仍然可以在less / vi左右移动,那么ssh就可以了。在这种情况下,请确定您使用的外壳程序,然后禁用超时。很有可能是外壳使您超时而不是使用SSH。但是,如果未发送保持活动状态,某些防火墙将关闭空闲会话。

通过使设置为只读,Solaris管理员可能会阻止您在Shell中禁用超时。这不太可能,但是可能。通常,您可以使用其他Shell来解决此问题。


1

如果您在重新配置外壳时遇到麻烦,则可以使用GNU屏幕。如果您的SSH会话超时,只需再次登录并重新连接,您的外壳将保持原样。


0

如果在Solaris计算机上运行tcsh,则可以设置autologout变量。如果将其设置为0(设置自动注销= 0)或取消设置(取消自动注销),它将停止注销。


0

这可能是鲱鱼,但是尝试

unset TMOUT

在您的shell提示下。过去,这确实对我有用,但是我不记得它是否仅限于某些体系结构(或外壳)。



0

您可以top在另一个终端上运行吗?那应该产生常规流量吗?



-1

我一直在linux / bsd服务器上使用“ ClientAliveInterval 300”获得成功。


-1

检查您的sshd配置中是否有类似以下内容的行/etc/ssh/sshd_config

ClientAliveInterval 600
ClientAliveCountMax 0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.