通过SSH连接Linux后,过了一段时间,输入任何内容没有反应。随便多输入一些后,提示如下:
packet_write_wait: Connection to 47.95.196.214 port 37682: Broken pipe
很显然这是连接超时的问题。
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
SSH 为 Secure Shell 的缩写,使用的是安全协议。
所以SSH不允许你无期限登录Linux,肯定有个超时时间。
所以我们给这个超时时间设置长一点就行了。
目前大多数ssh服务是运行在Linux系统上的sshd服务。
所以我们可以修改sshd的配置来避免超时。
按照如下步骤操作即可:
sudo vim /etc/ssh/sshd_config
例如:
# 下面代码意思是如果60秒*3=180秒/60=3分钟后客户端不响应,则ssh连接自动退出。
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 3 #可以不用修改。server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应
为了安全起见,建议将ClientAliveCoutMax设置为0,ClientAliveInterval 设置为300到900,即保持连接5-15分钟。
一般不建议在server端设置,因为这样会对所有连接的cient生效,有安全隐患
和在服务器端修改的方式一样的,要注意的是:
sshd_config
文件,客户端修改的是ssh_config
ClinetAliveCoutMax
和ClientAliveInterval
ServerAliveCoutMax
和ServerAliveInterval
如下代码表示保持连接6分钟
ssh -o ServerAliveInterval=360 root@192.168.1.1
还可以用于rsync+ssh同步一个大的sparse文件
rsync -a -z -vvv -S -e ssh -o “ServerAliveInterval 5400” images/vir_w23_x86_17_d.img kvm03:/opt/images/vir_w23_x86_17_d.img1