保持SSH会话激活

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

问题:

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

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

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

这很烦人。有人能帮帮我吗?

356627 次浏览

运行服务器端的ssh守护进程(sshd),如果客户端沉默(即不发送信息),它将从服务器端关闭连接。为了防止连接丢失,可以指示ssh客户端偶尔向服务器发送一个sign-of-life信号。

此配置在文件$HOME/.ssh/config中,如果不存在则创建该文件(配置文件必须不是世界可读的,因此在创建文件后运行chmod 600 ~/.ssh/config)。要每隔4分钟(240秒)向远程主机发送一次信号,请在配置文件中放入以下内容:

Host remotehost
HostName remotehost.com
ServerAliveInterval 240

为了使所有主机都能发送keep-alive信号,在配置文件中设置如下内容:

Host *
ServerAliveInterval 240

我想要一个一次性的解决方案:

ssh -o ServerAliveInterval=60 myname@myhost.com

存储在一个别名中:

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

现在可以这样连接:

me@MyMachine:~$ sshprod

我们可以通过以下全局配置来保持ssh连接存活

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

ServerAliveInterval 60

@edward-coast

如果你想设置keep alive 对于服务器,将其添加到/etc/ssh/sshd_config:

ClientAliveInterval 60
ClientAliveCountMax 2

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

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

putty settings

用户可以在这里设置选项