我目前正在尝试 ssh 到 colo,经过 1 到 2 分钟不活动后,我得到:
superuser@thecolo:~$ Connection to 10.123.45.67 closed by remote host.
Connection to 10.123.45.67 closed.
mylocalmac:~ superuser$
只要我在 ssh 终端中输入内容,连接就会保持。一旦有 1 到 2 分钟不活动,我就会收到上述消息。我尝试连接的机器是 Ubuntu 12.04.1 LTS 64 位服务器版本。它不是物理服务器,而是客户 VMware。我正在从 mac 终端进行 ssh。
请不要将该问题与本网站中带有关键词ssh_exchange_identification
的类似问题混淆,它们是不相关的。
答案1
将以下内容添加到您的 $HOME/.ssh/config 中,所有 ssh 连接将每 30 秒发送一次 TCPKeepAlive:
TCPKeepAlive yes
ServerAliveInterval 30
答案2
如果你从 Linux 计算机连接,则可以直接从命令行使用一些选项
TCPKeepAlive:使用 TCP/IP 协议的 KEEPALIVE 选项在指定的不活动间隔后保持连接处于活动状态。在大多数系统中,这意味着 2 小时。因此,将 TCPKeepAlive 选项传递给 SSH 后,SSH 客户端将向 SSH 服务器发送加密数据包,使您的 TCP 连接保持正常运行。
ssh -o TCPKeepAlive=yes [email protected]
ServerAliveInterval:设置由您指定的超时间隔(以秒为单位),如果 SSH 客户端没有向 SSH 服务器发送任何数据包,则 SSH 将向服务器发送加密请求以获取 TCP 响应。每 30 秒发出一次该请求:
ssh -o ServerAliveInterval=30 [email protected]
答案3
你需要“保持活跃”
根据您的客户,这可能很简单或者很容易 - 它不应该更难!
例如,在油灰它位于连接选项上(将 keepalive 设置为非零值)
答案4
我遇到了同样的问题,并按如下方式解决:
允许用户 SSH 访问
例如superuser
,允许特定用户进行 SSH 访问,编辑您的服务器/etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
添加或者修改以下行:
AllowUsers superuser
保存文件(Ctrl+O)
重新启动 ssh,以 Debian 为例:
sudo /etc/init.d/ssh restart
现在您应该可以连接了!