如何保持 SSH 连接有效?

Ner*_*nux 19 ssh

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

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

Host *
ServerAliveInterval 3
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用。

Pes*_*rge 17

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

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2
Run Code Online (Sandbox Code Playgroud)

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

  • 我完全忘记了`ServerAliveCountMax`,这可能解决了我的问题。 (2认同)

tru*_*ype 8

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

ssh -o ServerAliveInterval=180 -o ServerAliveCountMax=2 $HOST
Run Code Online (Sandbox Code Playgroud)


Hai*_*eeb 6

在 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

Run Code Online (Sandbox Code Playgroud)

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

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

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

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

监控连接。如果仍然下降,请逐渐减少ServerAliveInterval配置文件中的设置,直到连接稳定。

检查以下网址了解更多详情https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive