即使设置了 ServerAliveInterval 60,ssh 仍然挂起

即使设置了 ServerAliveInterval 60,ssh 仍然挂起

我遇到了同样的问题,SSH 连接在 N 分钟后挂起。在看了一些教程后,我知道避免这个问题的一种方法是,将 ServerAliveInterval 设置为 60 或任何适合您的时间间隔。现在的问题是它不起作用。语法似乎没问题,但我只是想和 SF 的人再确认一下。

首先,我的配置不存在,所以我创建了它。

sudo nano ~/.ssh/config 
Host *
    ServerAliveInterval 60

我不知道这里出了什么问题,但它似乎不起作用。我不知道从哪里开始寻找问题。

答案1

当遇到 ssh 客户端问题时,权限是典型的罪魁祸首。确保此.ssh/config文件可供用户和组所有者读取。此文件的典型权限为 0644。.ssh 目录也应可供用户和组所有者读取和浏览。

还可以考虑通过将以下行放入其中,将此设置设为全局设置/etc/ssh/ssh_conf

ServerAliveInterval 60

答案2

如果您使用sudo随机命令,那么这些程序确实会在另一个地方查找您的配置。您绝对不需要超级用户权限来编辑您自己的用户目录中的配置...

在这里,~/.ssh/展开为类似于/home/saras/.ssh/用户 shell 中的内容,这就是您进行更改的地方。如果您还,ssh 程序将以 root 身份运行,并将查找 root 的主目录,其中没有您刚刚在自己的主目录中创建的配置。sudo ssh [email protected]/root/.ssh/

这些命令之间的区别在于,终端以您自己的用户身份运行,而您的命令行(可能是 bash)以相同的用户身份运行,这就是 shell 扩展的过程。执行命令后,它会变成 和 。请注意,该命令$RANDOM没有9指定配置位置,因此它必须根据运行的用户(即 root)在某个位置进行查找,而不是在 shell 扩展后接收位置。~//home/saras/ssh

覆盖全局配置为由 Spooler 建议也将规避这个问题,这似乎已经做到了,因为您已将答案标记为已接受,但这并不能解决问题的根源。

相关内容