保持SSH会话活着

我使用ssh -p8520 username@remote_host来login远程服务器。

问题

当我在工作场所时,它总是连接并正常工作。 不幸的是,在我从家里连接到远程服务器之后的10-15分钟内,terminal冻结了。

控制台上没有错误/超时报告,但光标不能再移动。

当inputw来检查login用户时,一些僵尸login用户在那里,我不得不手动杀死他们。

这很烦人。 谁能帮我?

如果sshd(服务器)在一段时间内没有收到客户端的任何信息,就closures连接。 您可以告诉您的客户偶尔发送生命符号信号给服务器。

这个configuration在文件“〜/ .ssh / config”中,如果configuration文件不存在,就创build它。 要每隔四分钟(240秒)将信号发送到远程主机,请将以下内容放在“〜/ .ssh / config”文件中。

 Host remotehost: HostName remotehost.com ServerAliveInterval 240 

这是我在“〜/ .ssh / config”中的内容:

要为所有主机启用它,请使用:

 Host * ServerAliveInterval 240 

另外请确保运行:

 chmod 600 ~/.ssh/config 

因为configuration文件不能是世界可读的。

我想要一个一次性的解决scheme:

 ssh -o ServerAliveInterval=60 myname@myhost.com 

将其存储在别名中:

 alias sshprod='ssh -v -o ServerAliveInterval=60 myname@myhost.com' 

现在可以这样连接:

 me@MyMachine:~$ sshprod 

对于那些想知道的,@ edward-coast

如果要为服务器设置保持活动状态,请将其添加到/etc/ssh/sshd_config

 ClientAliveInterval 60 ClientAliveCountMax 2 

ClientAliveInterval :设置以秒为单位的超时间隔,如果没有从客户端收到数据,sshd(8)将通过encryption通道发送一条消息来请求客户端的响应。

ClientAliveCountMax :设置客户端活动消息的数量(见下文),可以在不使用sshd的情况下发送(8)从客户端接收任何消息。 如果在发送客户端活动消息时达到此阈值,则sshd将断开客户端,终止会话。

腻子设置

FYI腻子用户可以在这里设置选项

我们可以通过以下全局configuration保持我们的SSH连接活着

/etc/ssh/ssh_config下行添加到/etc/ssh/ssh_config文件中:

 ServerAliveInterval 60