跳转至

SSH通过代理连接

SSH通过代理连接

从目前网上的资料来看,通过代理来连接ssh有2种方式:

先来介绍一下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 (编辑该配置文件)写入:

Host *
  ProxyCommand corkscrew http-proxy.example.com 8080 %h %p

注意http-proxy.example.com为http代理地址根据实际更改,后面的8080为http代理端口。接下来就可以直接连接了:

ssh root@ssh.malu.me -p 22

比如以上是陋室博客演示的登录服务器,在第二次登录时就可看到上次登录ip,从而判断是否是通过代理连接了。

接下来介绍connect,该程序官方提供的是c源文件,下载下来后需要编译:

1.下载并gcc编译:

wget http://www.meadowy.org/~gotoh/ssh/connect.c
gcc connect.c -o connect
cp connect /usr/local/bin

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

原文链接: http://bolg.malu.me/html/2011/1809.html