保持SSH会话活跃

时间:2014-08-01 16:04:10

标签: linux ssh terminal

我使用ssh -p8520 username@remote_host登录远程服务器。

问题

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

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

当输入 w 来检查登录用户时,有些僵尸登录用户在那里,我必须手动杀死它们。

这很烦人。谁能帮我?

5 个答案:

答案 0 :(得分:338)

sshd(服务器)如​​果一段时间没有从客户端听到任何声音,则会关闭连接。您可以告诉客户偶尔向服务器发送生命信号。

此配置位于文件"〜/ .ssh / config"中,如果配置文件不存在则创建它。要将信号每四分钟(240秒)发送到远程主机,请将以下内容放入"〜/ .ssh / config"文件。

Host remotehost:
    HostName remotehost.com
    ServerAliveInterval 240

这就是我在"〜/ .ssh / config"中所拥有的:

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

Host *
ServerAliveInterval 240

还要确保运行:

chmod 600 ~/.ssh/config

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

答案 1 :(得分:107)

我想要一次性解决方案:

ssh -o ServerAliveInterval=60 myname@myhost.com

将其存储在别名中:

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

现在可以像这样连接:

me@MyMachine:~$ sshprod

答案 2 :(得分:36)

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

如果您想设置保持活动for the server,请将其添加到/etc/ssh/sshd_config

ClientAliveInterval 60
ClientAliveCountMax 2
  

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

     

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

答案 3 :(得分:14)

putty settings

FYI Putty用户可以在此处设置选项

答案 4 :(得分:9)

我们可以通过遵循全局配置来保持我们的ssh连接活着

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

ServerAliveInterval 60