如何防止 ssh 超时

如何防止 ssh 超时

我使用以下命令设置了远程隧道:

ssh -R 2022:127.0.0.1:2222 -N -f [email protected] -i .ssh/djangoserver

远程机器可以成功进行 SSH,但连接只能持续大约 10 分钟,然后就会超时或锁定。

键盘没有响应,我必须终止远程计算机上的会话,然后再次登录,之后我无法连接到本地计算机

答案1

您的帖子未包含连接超时原因的信息。如果服务器因为客户端静默时间过长而终止连接,您可以设置 ServerAliveInterval(假设您使用的是 OpenSSH)。

来自手册页

设置超时间隔(以秒为单位),如果在此间隔内未从服务器收到任何数据,ssh(1) 将通过加密通道发送一条消息以请求服务器做出响应。默认值为 0,表示这些消息将不会发送到服务器。

此配置$HOME/.ssh/config在客户端进行。如果您希望每分钟向远程主机 example.net 发送一次信号,请在配置文件中输入以下内容:

Host example.net
    HostName example.net
    ServerAliveInterval 60

如果使用通配符,则可以为所有主机启用它

Host *
    ServerAliveInterval 60

您可以在 中在服务器端设置类似的选项/etc/ssh/sshd_config。它称为 ClientAliveInterval。如果您自己运行服务器并且不想自定义所有客户端,这可能会有所帮助。

来自手册页

设置超时间隔(以秒为单位),如果在此间隔后未从客户端收到任何数据,sshd(8) 将通过加密通道发送一条消息以请求客户端的响应。默认值为 0,表示这些消息不会发送到客户端。此选项仅适用于协议版本 2。

相关内容