【问题标题】:Whats the difference between ConnectTimeout and ServerAliveInterval in sshssh 中的 ConnectTimeout 和 ServerAliveInterval 有什么区别
【发布时间】:2017-10-02 01:12:03
【问题描述】:

我在几台远程服务器上进行 ssh,一些服务器没有响应,其中一些可能已关闭。

为了排除这种情况,我在 ssh 命令中使用了ConnectTimeout。当我将它配置为时,它正在超时。

我目前的做法ssh

ssh -o LogLevel=Error -oConnectTimeout=5 -oBatchMode=yes -l becomeaccount servername './command.sh'

一切都很顺利,直到有一天我在我的一台服务器上发现了一个陈旧的 ssh 连接。持续了超过 3 天。

所以现在我想我可能错过了一些东西,我尝试用谷歌搜索它,发现有一个叫做ServerAliveInterval的东西......这能解决我的问题吗?它与ConnectTimeOut 有何不同?

【问题讨论】:

    标签: unix ssh


    【解决方案1】:

    “ServerAliveInterval”指定 SSH 服务器和客户端之间的定期轮询时间。目的是双重的:

    (1) 关闭空闲的 ssh 会话,其中任一 [a] 一侧或另一侧严重崩溃(即:机器故障/断电) [b] 一侧或另一侧更改 IP 地址

    (2) 通过 NAT 维护空闲 ssh 会话,这将拆除(或终止)空闲 TCP 会话

    ServerAliveInterval 影响“ssh”客户端。 “sshd”服务器有一个相应的参数。 (还有一个 TCPKeepAlive 选项。)如果您在远程服务器上看到孤立的 sshd 会话,您应该考虑在远程服务器的 sshd_config 中进行适当的更改。如果您无法在远程服务器的 sshd_config 中实施更改,但仍需要让空闲登录终止,请检查您的 shell 是否有空闲超时(“bash”确实如此。)

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      相关资源
      最近更新 更多