shell脚本实现代理登陆 二透过防火墙代理登陆

说明:
上一篇“shell脚本实现代理登陆 一实现基本登陆功能”讲解了把本机当作代理机,调用shell脚本通过本机登陆到其它台服务器上。但如果被登陆服务器本身也是处在防火墙内,也是通过代理服务器开放出来的,这时该怎么办。
好像ssh本身并没有设置代理的地方,有的话请告知一声。这边主要是通过Corkscrew实现。

拓扑:
test服务器,以下简称test,也是我们代理shell脚本的地方
A服务,以下简称A,是我们需要通过shell实现登陆的服务器,A服务器本身也是处在防火墙内,本身也只通过其它代理开放出来。
我们这边要做的,就是通过test的shell脚本->透过A服务本身的代理登陆A。上一篇的话A本身是处在防火墙外,所以简单点。

具体:
1. 编译安装Corkscrew

# wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz
# tar zxvf corkscrew-2.0.tar.gz
# cd corkscrew
# ./configure
# make install 

 
2. 修改.ssh/config配置文件,config文件没有就新建,config文件是ssh工具自定义配置文件,/etc/ssh/ssh_config是全局配置文件

# vim .ssh/config  //添加以下内容
Host 8.8.8.*  ##对8.8.8.*段的登陆通过以下代理
ProxyCommand /usr/local/bin/corkscrew 代理IP 代理port %h %p ~/.ssh/proxyauth  ###proxyauth是代理服务器的账号密码

Host 10.*   ##这条可以忽略,这条是用于代理登陆openqq的服务器用的,主要是为了让大家看看多个代理,可以这样设置
ProxyCommand /usr/local/bin/corkscrew cvm-proxy.opencloud.qq.com 80 %h  %p

 
3. 添加代理服务器账号密码

# vim .ssh/proxyauth  //此处是代理服务器的账号密码,不是我们要登陆的服务器账号
代理账号:代理密码

 
4. 测试登陆

# ssh root@8.8.8.8 -i A服务器的私钥文件
Last login: Sat Feb 28 17:16:21 2015 from X.x.x.x  //x.x.x.x显示的是A的代理服务器IP,因为我们是通过test跳转到A的代理,然后再跳转到A的。

 
5. 剩下的就是像上一篇一样,往shell脚本里添加ServerArray就可以了。

发表评论

邮箱地址不会被公开。 必填项已用*标注