防止ssh代理空闲断开连接
上一篇文章linux最小权限化ssh代理,给大家讲了怎么使用ssh来做代理,但有些服务器对ssh有连接时间限制,超过一定时间ssh就会自动断开,那这样就会对ssh代理造成影响,为了防止这样的问题,我使用了下面的脚本来防止ssh代理断开连接.
系统: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 "passwd\r" } } 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代理的进程,那就表示脚本执行成功了,如果没有,那我建议你先手动执行下脚本,看看错误到底出在那.
评论: