使用 SSH 协议时,您可能已经注意到会话在一段时间不活动后会超时。 虽然这是防止旁观者或任何未经授权的用户接管您的会话的可靠安全措施,但它可能很烦人并且可能带来挑战,尤其是在您运行冗长的任务或操作时。 在本教程中,我们将研究各种有助于防止 SSH 超时的技巧。
防止 SSH 在服务器端超时
为了在不活动期间保持 SSH 会话处于活动状态,需要将服务器配置为每隔一段时间向客户端系统发送一个空数据包。 这可以在服务器端轻松完成,如下所示。
在服务器上,打开 /etc/ssh/sshd_config 使用您喜欢的文本编辑器创建文件。
$ sudo vim /etc/ssh/ssh_config
将此行附加到文件末尾。
ClientAliveInterval 60
这 ClientAliveInterval 参数指定服务器在向客户端发送空数据包之前等待的秒数,以防止会话超时。 在这种情况下,服务器将每 60 秒等待一次,然后再发送空数据包。
完成后,保存并退出文件,然后重新启动 SSH 服务。
$ sudo systemctl restart ssh
并确认 SSH 正在运行。
$ sudo systemctl status ssh
防止 SSH 在客户端超时
在客户端打开 /etc/ssh/sshd_config 配置文件并附加下面的行。
ServerAliveInterval 60
这 ServerAliveInterval 指令指示客户端在将空数据包发送到服务器以维持 SSH 会话之前等待的时间(以秒为单位)。 在此示例中,客户端在发送空数据包之前等待 60 秒。
Save 并退出 SSH 配置文件。 再次,重新启动 SSH 协议
$ sudo systemctl restart ssh
并验证服务是否正在运行。
$ sudo systemctl status ssh
使用 Putty 客户端保持 SSH 会话处于活动状态
Putty 是一种流行的免费 SSH 客户端,它允许您通过 TCP/IP 网络连接到远程设备。 要保持 SSH 会话处于活动状态,请启动 Putty 并单击“联系‘ 左侧边栏上的选项。 然后检查’启用 TCP keepalives(SO_KEEPALIVE 选项)‘ 选项如所示。
从这里点击’联系‘ 选项在最顶部并输入远程服务器的 IP 并单击 ‘打开’.
结论
这是保持 SSH 会话活动并防止它们不必要地超时的各种方法的总结。 这些是您可以使用的方便技巧,尤其是当您不在时有人接管您的 SSH 会话没有相关风险时。