sed举例&& ssh超时断开解决方法

本文介绍了SSH连接Linux时遇到的超时断开问题及其解决方法,包括修改`/etc/ssh/sshd_config`配置文件设置`ClientAliveInterval`和`ClientAliveCountMax`,以及在客户端如Linux的`ssh_config`、SecureCRT和PuTTY中设置保持活动选项。同时,文章还提供了一些实用的sed命令示例。
摘要由CSDN通过智能技术生成

[root@a ~]# date;netstat -antp|grep -w 'tcp' | grep '192.168.0.185' | awk '{print $4,$6}' | sed 's/:/ /g' | awk '{print $1,$3}' | sort | uniq -c
Tue May 31 15:05:29 CST 2022
      5 192.168.0.185 ESTABLISHED
      1 192.168.0.185 LAST_ACK
 

sed 's/:/ /g'        :替换为空格

开头^                   空行^$         结尾或最后一行$   

加上 -e 时 's/11/00/g' 与 's/22/99/g' 都进行了操作

-e

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
————————————————

//第二行PermitRootLogin替换为pp

sed -i '2s/^PermitRootLogin/pp/' 123.txt
//以PermitRootLogin开头,将yes替换为no
sed -i '/^PermitRootLogin/s/yes/no/g' /etc/ssh/sshd_config
//替换ClientAliveInterval这行为ClientAliveInterval 300
sed -i 's/ClientAliveInterval .*/ClientAliveInterval 300/g' /etc/ssh/sshd_config
//替换#ClientAliveInterval这行为ClientAliveInterval 600
[root@i-3pedyvud ~]# sed -i '/^#ClientAliveInterval/c ClientAliveInterval 600' /etc/ssh/sshd_config
[root@i-3pedyvud ~]# cat /etc/ssh/sshd_config | grep ClientA*
ClientAliveInterval 600
#ClientAliveCountMax 3
[root@i-3pedyvud ~]# 
//以AllowUsers开头 root替换为空
[root@i-3pedyvud ~]# sed -i '/^AllowUsers/s/root//g' /etc/ssh/sshd_config

当用SSH Secure Shell连接Linux时,如果几分钟没有任何操作,连接就会断开,必须重新登陆才行,每次都重复相同的操作,很是烦人,本文总结了两种解决的方法。

方法1:更改ssh服务器的配置文件/etc/ssh/sshd_config

ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。而ClientAliveInterval 60表示每分钟发送一次,然后客户端响应,这样就保持长连接了。这里比较怪的地方是:不是客户端主动发起保持连接的请求(如FTerm, CTerm等),而是需要服务器先主动。

另外,至于ClientAliveCountMax,使用默认值3即可。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值,就自动断开,正常情况下,客户端不会不响应。

vim /etc/ssh/sshd_config

找到ClientAliveInterval 参数,如果没有就自己加一行。

ClientAliveInterval 参数的数值是秒,比如你设置为540,就是9分钟.

ClientAliveInterval 540

对于ClientAliveCountMax

指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数,比如10。

ClientAliveInterval 540

ClientAliveCountMax 10;

则代表允许超时 5400秒 = 90分钟。

方法2:配置客户端

1. linux下的ssh命令

vim /etc/ssh/ssh_config

然后找到里面的ServerAliveInterval 参数,如果没有你同样自己加一个就好了。参数意义相同,都是秒数,比如9分钟:

ServerAliveInterval 540

2. SecureCRT

设置反空闲,如下图所示

3 Putty

启用putty keepalive

putty -> Connection -> Seconds between keepalives ( 0 to turn off ),默认为0,改为60。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值