linux系统下载_linux系统防止ssh代理空闲断开连接问题

更新时间:2018-11-15    来源:linux    手机版     字体:

【www.bbyears.com--linux】

系统:centos 5.9
1.安装expect
yum -y install expect


2.配置防ssh代理断开脚本

 代码如下

vi sshproxy.sh
#!/usr/bin/expect -f
set timeout 60
spawn /usr/bin/ssh -qTfnCNgD 7070 -g username@serverip
expect {
"password:" {
send "passwdr"
}
}
interact {
timeout 60 { send " "}
if [fork]!=0 exit
disconnect
}

chmod +x sshproxy.sh


3.让脚本在后台运行

 代码如下 nohup ./sshproxy.sh


这里说下因为expect的关系,我在脚本中添加了:

 代码如下 if [fork]!=0 exit
disconnect

来使其脚本可以在后台执行,如果不加的话,使用nohup无法使脚本执行,这里为什么不在脚本后面加&的原因也是一样的道理.


4.验证脚本是否已经成功

 代码如下 ps aux|grep ssh
/usr/bin/ssh -qTfnCNgD 7070 -g username@serverip

 如果看到进程里有ssh代理的进程,那就表示脚本执行成功了,如果没有,那我建议你先手动执行下脚本,看看错误到底出在那.

补充两个其它办法

方案一:在客户端设置

方法很简单,只需在客户端电脑上编辑(需要root权限)/etc/ssh/ssh_config,并添加如下一行:
ServerAliveInterval 60
此后该系统里的用户连接SSH时,每60秒会发一个KeepAlive请求,避免被踢。

方案二:在服务器端设置

如果有相应的权限,也可以在服务器端设置,即编辑/etc/ssh/sshd_config,并添加:
ClientAliveInterval 60
重启SSH服务器后该项设置会生效。每一个连接到此服务器上的客户端都会受其影响

本文来源:http://www.bbyears.com/caozuoxitong/45837.html

猜你感兴趣