如何保持SSH连接有效?


12

如何在不积极使用SSH的情况下保持SSH连接的活动状态。当我使用它时,它可以正常工作,但是当我几分钟不使用它时,它会断开连接。每次连接时都会收到一封电子邮件,如何使SSH会话保持活动状态?

注意:在我的.ssh/config文件顶部

Host *
ServerAliveInterval 3

但它似乎不起作用。


什么是SSH客户端?3太短,请使用60的间隔。如果您具有root访问权限,也可以将其放在/ etc / ssh / ssh_config中。
Panther

*应该是所有人,不是吗?
NerdOfLinux

我认为这不适用于PuTTY
Panther

Answers:


11

您需要指定发送数据包到服务器的尝试次数和间隔。您可以在.ssh/config文件中放入以下行:

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2

这将每180秒(3分钟)向服务器发送一个数据包,并且在没有收到客户端响应后,它将尝试两次,直到关闭连接。


2
我完全忘记了ServerAliveCountMax,这可能是解决我的问题的原因。
NerdOfLinux

5

在Linux和Apple Mac OS X操作系统上,该~/.ssh/config文件使您可以指定许多SSH设置,包括使SSH连接保持活动状态的设置。为此,请按照下列步骤操作:

  1. 使用首选的文本编辑器~/.ssh/config在本地计算机上打开文件。注意:如果.ssh目录或配置文件不存在,请创建它们。

  2. 将以下行添加到配置文件。该主机值可以是任何你想要的名称; 它只是其他设置的标签。该主机名值是您要访问的远程主机; 用您的域名替换example.com。用您自己的托管帐户用户名替换用户名:


    Host example
        Hostname example.com
        Port 7822
        User username
        ServerAliveInterval 240
        ServerAliveCountMax 2

使用此配置,SSH客户端每240秒(4分钟)向服务器发送一个数据包以使连接保持活动状态。如果客户端在两次尝试(如由ServerAliveCountMax设置指定)后仍未收到响应,它将关闭连接。

有关所有可用的SSH配置设置的详细信息,请man ssh_config在命令行中键入。

  1. 将更改保存到配置文件。

  2. 使用SSH连接到您的帐户。为此,只需键入ssh example,其中example表示您在步骤2中指定的主机值。

监视连接。如果仍然掉线,请逐渐减小ServerAliveInterval配置文件中的设置,直到连接稳定。

检查以下网址以获取更多详细信息https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive


5

您也可以在ssh命令中添加这些参数,就像这样...

ssh -o ServerAliveInterval=180 -o ServerAliveCountMax=2 $HOST
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.