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终端嘛,比如finalshell;
~/.ssh/config 或者 /etc/ssh/ssh_config 是哪个,是不是还是服务端或者服务器的文件啊?
呵呵。我的客户端还是Linux,不是Windows。