如何防止SSH自动断开连接

SSH会话缺省会在一段时间后自动断开连接,导致终端卡死,这时只能关掉终端另起一个,体验不好。还是做个设置,使得SSH会话一直保持连接。

有两种设置方法。

一、在服务器端设置

编辑/etc/ssh/sshd_config。

sudo vi /etc/ssh/sshd_config

在其中加入下面两行:

# Server 每隔 60 秒发送一次请求给 Client,然后 Client响应,从而保持连接
ClientAliveInterval 60
# Server发出请求后,客户端没有响应得次数达到 10,就自动断开连接
ClientAliveCountMax 10

sudo systemctl status sshd

重启sshd服务。

sudo systemctl restart sshd

二、客户端设置

如果经常要登录多个服务器,或者无服务器SSHD服务配置修改权限时,在客户端设置是比较好的方法。

编辑 /etc/ssh/ssh_config (全局生效),或者~/.ssh/config (只对当前用户有效),在其中加入下面语句:

Host  *
     TCPKeepAlive=yes
     # Client每隔 60 秒发送一次请求给 Server,然后 Server响应,从而保持连接
     ServerAliveInterval 60
     # Client发出请求后,服务器端没有响应得次数达到3,就自动断开连接
    ServerAliveCountMax 5

注意,第一行 “Host *”,在/etc/ssh/ssh_config一般已经存在,无需再输入;而在~/.ssh/config 中一般不存在,需要手动输入;后面3个参数的起始必须为空格,不能直接顶格写。

《如何防止SSH自动断开连接》有2条评论

  1. 二、客户端设置 ? 客户端不就是ssh终端嘛,比如finalshell;
    ~/.ssh/config 或者 /etc/ssh/ssh_config 是哪个,是不是还是服务端或者服务器的文件啊?

    回复

发表评论