我使用ssh -p8520 username@remote_host
登录远程服务器。
问题:
当我在工作场所时,它始终连接并正常工作。不幸的是,终端在与家里的远程服务器连接后10到15分钟内冻结了。
控制台上没有错误/超时报告,但光标不能再移动了。
当输入 w 来检查登录用户时,有些僵尸登录用户在那里,我必须手动杀死它们。
这很烦人。谁能帮我?
答案 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)
答案 4 :(得分:9)
我们可以通过遵循全局配置来保持我们的ssh连接活着
将以下行添加到/etc/ssh/ssh_config
文件中:
ServerAliveInterval 60