SSH通过代理连接
SSH通过代理连接
从目前网上的资料来看,通过代理来连接ssh有2种方式:
- 一种是用Corkscrew实现http代理隧道连接,corkscrew官方主页;
- 另外一种是利用connect能实现Sock5和http代理隧道连接,connect官方主页(connect项目现已撤出,详细介绍请看:点这里)。
先来介绍一下Corkscrew,首先强调的是它只能使用http代理,我试了很长时间,发现不成功,其原因就是模拟的代理不是http代理,至于http代理网上有很多,大家可以直接搜索后拿来使用。
那么如何来使用它:
1.解压并编译安装:
wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gztar -xzvf corkscrew-2.0.tar.gz
# [..]
cd corkscrew
./configure
make install
2.添加配置到ssh用户目录,$HOME/.ssh/config (编辑该配置文件)写入:
注意http-proxy.example.com为http代理地址根据实际更改,后面的8080为http代理端口。接下来就可以直接连接了:
ssh [email protected] -p 22
比如以上是陋室博客演示的登录服务器,在第二次登录时就可看到上次登录ip,从而判断是否是通过代理连接了。
接下来介绍connect,该程序官方提供的是c源文件,下载下来后需要编译:
1.下载并gcc编译:
2.添加配置到ssh用户目录,$HOME/.ssh/config (编辑该配置文件)写入:
## Outside of the firewall, with HTTP proxy
Host *
ProxyCommand connect -H proxy.local.net:8080 %h %p
以上是透过http代理,如果是socks代理则把-H改为-S:
## Outside of the firewall, use connect command with SOCKS conenction.
Host *
ProxyCommand connect -S socks.local.net %h %p
以上配置就完成了,注意socks.local.net同样是需要用自己的socks代理服务器替换的,在端口配置上是加“:端口号”来解决与Corkscrew的配置不同。
如果是Windows下使用cygwin的用户,可以直接下载connect.exe,放在c:\window\目录下,然后同样的在$HOME/.ssh/config写入相应配置。
以上需要用到的文件备份在陋室博客-下载-源代码里:http://bolg.malu.me/down