如何使腻子在一段时间后不中断会话?


34

putty如果空闲,则每次关闭会话都会经过一段时间。

time腻子上没有参数,那么如何使puttyssh会话始终保持活动状态?

Answers:


15

要检查的另一件事是您的系统是否正在设置环境变量TMOUT。要检查这一点,您可以执行以下操作:

env | grep TMOUT

要么

echo $TMOUT

如果已设置,则可以更改或取消设置。更改值:

export TMOUT=3600

该数字是直到您注销为止的秒数。否则,请取消设置以关闭该功能:

unset TMOUT

请注意,可能是系统管理员出于安全原因设置了此设置。因此,如果您不是系统管理员,则可能需要先进行检查,然后再自行更改。


48

通过将以下设置更改为正值来启用S​​SH保持活动状态

PuTTY配置对话框的“连接”页面

在大多数情况下,值300就足够了。(5分钟。)这会使PuTTY定期将SSH空数据包发送到远程主机,以使会话不会超时。

请注意,我们希望该SO_KEEPALIVE选项在该页面的下方。那是一个低级的机制,只有在应用程序级协议没有自己的keepalive机制时,才最好使用它。SSH使用,因此在这种情况下我们不应该使用TCP keepalive。

还有其他一些因素可能导致连接断开,但这是尝试的可靠方法。如果它不起作用,则需要研究以下其他内容:VPN超时,路由器超时,远程SSH服务器上的设置更改,不稳定的连接等。


3
或者,运行一些会产生连续输出的东西,例如top当您不在时。
LawrenceC

1
@ultrasawblade:这是胶带修复;它仅能治疗症状,而不能解决真正的问题。
凯文M

此配置是否适用于Windows CLI?我的意思是,不是创建保存会话,而是创建指向putty.exe的链接,将登录凭据作为参数传递(putty.exe主机-l root -pw密码),否则,是否有任何参数可通过CLI应用此选项?
Mc Kernel

3
这是一个很好的解决方案,尤其是当您在不稳定的连接上工作时,不必对服务器进行任何更改(不同于公认的解决方案)。
itoctopus

有人知道如何通过cmd行指定吗?
Janac Meena

8

除了其他答案之外,我建议screen即使腻子终止(连接中断,VPN断开等),也可以进行会话管理。


6

在PuTTY中检查以下选项:

在此处输入图片说明


可悲的是,SO_KEEPALIVE似乎每隔几个小时才发送一次(至少默认情况下是这样),所以给他们一个更好的名字是“检查是否死了”大声笑
rogerdpack

3

请确保在油灰上运行此程序,以确保每10分钟激活一次会话。

 while true; do date; sleep 600; done

我总是在我的服务器上运行它,但是它不起作用。
cokedude

1

如果以上方法均无济于事,
则必须更改系统的sshd配置!
请注意,这将需要root权限!

编辑 sshd_config 文件,以我为例/etc/ssh/sshd_config

内容为:

ClientAliveInterval 300  
ClientAliveCountMax 0

改成:

ClientAliveInterval 6000  
ClientAliveCountMax 3

别忘了

service sshd restart


0

在腻子Connection>SSH菜单中,将以下值用作Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT')

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.