ssh链接linux服务器不断开- "Write failed: Broken pipe"

 我本身用阿里云的服务器的时候,发现ssh连上之后,一会不用就断掉了,很是不方便,服务端的系统是ubuntu. 查了些东西,原来能够去配置服务端的sshd,或者客户端的ssh,就好了.ubuntu

 

1,配置服务器端sshd,这样全部连该服务器的会话都会产生效果服务器

找到网络

/etc/ssh/sshd_config

添加一行ssh

ClientAliveInterval  30

这样server端每30s就会向client端发送一个keep-alive包, 来保持链接测试

还能够加上一行,指定发送keep-alive包的最大次数阿里云

ClientAliveCountMax  60

若是发送keep-alive包次数达到60, 而客户端尚未反应,则server端的sshd断开链接加密

也就是若是什么都不操做,这个配置可让链接保持30*60s , 30分钟spa

 

 

 

2,若是没有服务器权限,能够配置客户端ssh,这样对这个客户端发起的全部会话都会产生效果code

找到server

/etc/ssh/ssh_config

一样添加上面跟上面了两个差很少的参数

ServerAliveInterval 
ServerAliveCountMax 

这样就是ssh向服务端sshd发送keep-alive包

 

 

 

3, 也能够指定某个特定的会话

ssh -o ServerAliveInterval=30  root@192.168.12.192

ssh带上 -o 参数就能够以配置文件的参数指定这一次会话,  向上面就会一直保持此次会话.

 

 

 

关于SSH

SSH是Secure Shell的缩写, 是一个应用层的加密网络协议, 它不仅能够用于远程登陆, 远程命令执行,还可用于数据传输.

固然它由ssh Client和ssh Server端组成, 有不少实现, Ubuntu上就默认安装的OpenSSH, Client端叫作ssh, Server端叫作sshd.   OpenSSH只用来作远程登陆和命令执行.

 

1, 把ssh server运行在特殊端口

SSH Server运行的默认端口是22,有时候内部服务器,为了防止外部尝试链接,会把sshd运行在一个陌生的端口,只对内部开放.

使用 -p

/usr/sbin/sshd -p 2222

或者在sshd配置文件中指定

Port  2222

这时SSH Client去链接也须要指定端口

ssh root@192.168.12.192  -p 2222

 

 

2,scp使用的是ssh协议

另外咱们常常用的,用做远程加密文件传输的scp (Secure Copy), 就是使用的SSH协议

scp /home/wangyu/file root@192.168.12.192:/srv/

也就是实际上,scp会作为ssh client先和ssh server肯定传输通道, 固然默认也是端口22.

若是服务端的ssh server没有运行,那scp是没法链接成功的

以下是个人测试

 

固然若是ssh server运行在特殊指定的端口,那scp也必须去指定这样的端口

咱们把sshd运行在2222端口,那scp要经过 -P 去指定

scp -P 2222 /home/wangyu/test root@192.168.12.192:/srv/
相关文章
相关标签/搜索