Answers:
sshd(服务器)如果在一段时间内未收到客户端的任何消息,则关闭连接。您可以告诉客户端偶尔将生命周期信号发送到服务器。
此文件的配置在文件中~/.ssh/config。要将信号每隔四分钟发送到remotehost,请在中输入以下内容~/.ssh/config。
Host remotehost
  HostName remotehost.com
  ServerAliveInterval 240
这就是我所拥有的~/.ssh/config。
要为所有主机启用它,请使用:
Host *
  ServerAliveInterval 240
还要确保运行chmod 600 ~/.ssh/config,因为配置文件一定不能被世界读取。
~/.ssh/config哪里
                    按Enter,~,.一前一后从冷冻断开会话。
ssh手册页中的“ ESCAPE CHARACTERS”部分介绍了底层详细信息。
EscapeChar ~的/etc/ssh/ssh_config(或者~/.ssh/ssh_config,如果你喜欢)。
                    EscapeChar ~已经是内置默认值。
                    即使这不是您问题的直接答案,也与您遇到的问题高度相关。而不是试图保持连接(所有连接最终死亡),可以使用终端复用器,像screen和tmux该会话保持活动状态,即使你的终端被断开的背景。
本质上,当您登录到SSH服务器时,您将立即运行screen,它将创建并附加一个新会话:
$ screen
然后,继续进行您的外壳工作,就像平常一样。现在,如果连接断开了,那么当您可以重新联机并通过SSH重新连接到服务器时,您将获得当前会话的列表:
$ screen -ls
要重新加入会话:
$ screen -r <session>
<session>PID或会话名称在哪里。您将重新连接到会话,您可以从上次中断的地方继续!
您甚至可以分离会话并从家中重新连接,以从上次中断的确切地点接起电话。要分离会话,请使用,C-a后跟C-d(that Control + A和Control + D)。
也有简单的在线教程。
在远程服务器上使用screen和tmux在远程服务器上被认为是最佳做法,强烈建议您使用它。有些人会尽量使用screen默认的登录外壳,因此当他们连接时,他们会立即开始新的screen会话。
您还可以从SSH服务器端设置空闲超时间隔:
文件: /etc/ssh/ssh_config
内容:
ClientAliveInterval XX
ClientAliveCountMax YY
它的工作方式与客户端设置完全相同,但是空包是从服务器而不是客户端发送的。
摘自:
http://www.sysadmit.com/2016/02/linux-y-vmware-ssh-evitar-desconexion.html
对于那些想阻止客户首先超时的人。
您可以尝试ConnectTimeout 0在配置文件中进行设置。值0表示除非关闭,否则连接将无限期保持活动状态。
您的配置(或ssh_config)文件可能如下所示:
Host *
   ConnectTimeout 0