保持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