我遇到了同样的问题,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 建议也将规避这个问题,这似乎已经做到了,因为您已将答案标记为已接受,但这并不能解决问题的根源。