Andrew Asked: 2009-05-01 22:38:13 +0800 CST2009-05-01 22:38:13 +0800 CST 2009-05-01 22:38:13 +0800 CST ssh 会话空闲超时 772 我们进行大部分开发工作的 Solaris 机器有一个令人讨厌的习惯,即超时 SSH 会话。不管客户端是我的 Ubuntu 桌面、Solaris 桌面还是 Windows 桌面(putty);共同因素是大型 Solaris 机器。 我能做些什么来阻止这种情况的发生吗?当您午休时,您打开并精心配置的终端会话都被冻结了,因此您需要将它们全部杀死并重新建立所有上下文,这很烦人。 solaris ssh timeout 12 个回答 Voted Best Answer Sophie Alpert 2009-05-01T22:39:13+08:002009-05-01T22:39:13+08:00 是的。配置 SSH 以发送keepalive 数据包。 Andrew 2009-05-07T20:50:30+08:002009-05-07T20:50:30+08:00 我发现keepalive行为不太奏效。我尝试将 ServerAliveInterval 添加到 ~/.ssh/config 脚本中,但它与 git 不兼容。 我最终做的是在我的“屏幕”状态栏上添加一个时间戳。这足以保持连接。 justinhj 2009-05-13T14:34:34+08:002009-05-13T14:34:34+08:00 您也可以将 Putty 配置为发送保持活动数据包。 在设置、连接、keepalives 之间的秒数中。 brianegge 2009-06-01T21:10:55+08:002009-06-01T21:10:55+08:00 首先,您需要确定是您的 shell 将您注销还是 ssh。为了测试,ssh 进入你的远程机器,并且 vi 或更少的文件。 如果很长一段时间后你仍然可以在less/vi 周围移动,那么ssh 就可以了。在这种情况下,请确定您使用的 shell,并禁用超时。很可能是 shell 让您超时,而不是 SSH。但是,如果没有发送保持活动,一些防火墙将关闭空闲会话。 Solaris 管理员可能会通过将设置设为只读来阻止您在 shell 中禁用超时。这不太可能,但可能。您通常可以通过使用不同的 shell 来解决这个问题。 staticsan 2009-06-01T21:23:14+08:002009-06-01T21:23:14+08:00 如果您在重新配置 shell 时遇到问题,可以使用 GNU screen。如果您的 SSH 会话超时,只需再次登录并重新连接,您的 shell 将保持原样。 Jimmy Hedman 2009-05-05T23:15:25+08:002009-05-05T23:15:25+08:00 如果您在 Solaris 机器上运行 tcsh,则可以设置 autologout 变量。如果您将其设置为 0(设置 autologout=0)或取消设置(取消设置自动注销),它将停止将您注销。 dr-jan 2009-05-13T14:24:36+08:002009-05-13T14:24:36+08:00 这可能是一个红鲱鱼,但试试 unset TMOUT 在你的 shell 提示符下。这在过去肯定对我有用,但我不记得它是否仅限于某些架构(或 shell)。 setatakahashi 2009-05-13T16:57:27+08:002009-05-13T16:57:27+08:00 输入您的外壳配置文件 导出 TMOUT=0 导出超时=0 Amandasaurus 2009-06-17T01:42:53+08:002009-06-17T01:42:53+08:00 你可以top在另一个终端上运行吗?那应该会产生定期流量吗? Drew Stephens 2009-09-07T13:49:53+08:002009-09-07T13:49:53+08:00 Spinner听起来是您问题的完美解决方案。它会定期在您的会话中发送字符以防止超时。
是的。配置 SSH 以发送keepalive 数据包。
我发现keepalive行为不太奏效。我尝试将 ServerAliveInterval 添加到 ~/.ssh/config 脚本中,但它与 git 不兼容。
我最终做的是在我的“屏幕”状态栏上添加一个时间戳。这足以保持连接。
您也可以将 Putty 配置为发送保持活动数据包。
在设置、连接、keepalives 之间的秒数中。
首先,您需要确定是您的 shell 将您注销还是 ssh。为了测试,ssh 进入你的远程机器,并且 vi 或更少的文件。
如果很长一段时间后你仍然可以在less/vi 周围移动,那么ssh 就可以了。在这种情况下,请确定您使用的 shell,并禁用超时。很可能是 shell 让您超时,而不是 SSH。但是,如果没有发送保持活动,一些防火墙将关闭空闲会话。
Solaris 管理员可能会通过将设置设为只读来阻止您在 shell 中禁用超时。这不太可能,但可能。您通常可以通过使用不同的 shell 来解决这个问题。
如果您在重新配置 shell 时遇到问题,可以使用 GNU screen。如果您的 SSH 会话超时,只需再次登录并重新连接,您的 shell 将保持原样。
如果您在 Solaris 机器上运行 tcsh,则可以设置 autologout 变量。如果您将其设置为 0(设置 autologout=0)或取消设置(取消设置自动注销),它将停止将您注销。
这可能是一个红鲱鱼,但试试
在你的 shell 提示符下。这在过去肯定对我有用,但我不记得它是否仅限于某些架构(或 shell)。
输入您的外壳配置文件
你可以
top
在另一个终端上运行吗?那应该会产生定期流量吗?Spinner听起来是您问题的完美解决方案。它会定期在您的会话中发送字符以防止超时。