防止ssh代理空闲断开连接

post by rocdk890 / 2013-7-12 13:31 Friday linux技术
  上一篇文章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代理的进程,那就表示脚本执行成功了,如果没有,那我建议你先手动执行下脚本,看看错误到底出在那.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-403.html

标签: ssh 代理 shell 脚本 执行 expect 后台 空闲 nohup

评论: