巧用SSH做代理服务器

转自:Shawn’s Blog.

其实这是一个很早就有的技巧,但以前使用国外空间的朋友并不多,所以没有普及开来。随着越来越多的用户购买了DreamhostHostmonster 等国外空间,SSH的强大特性逐渐凸显出来。使用SSH,我们不仅可以通过命令操作实现更多的功能,根据其端口转发的特性,还可以利用Putty这个开源的SSH客户端建立一个独立通道,实现加密的互联网代理访问。

操作步骤如下:

1. 首先需要有一个国外主机的帐号和SSH访问权限(国内的不行,大家都知道为什么)。

2. 到官方下载Putty完整客户端,仅有putty.exe 这一个文件不行,因为需要用到plink.exe 这个 putty 的命令符程序。

3. 新建一个文件,写入以下内容,另存为.bat批处理文件,并放在Putty的安装目录内。

1
@echo  off

goto start
:start
cls
color 1f
echo.
echo SSH Proxy 启动程序
echo.
plink -N Username@localhost -pw Password -D 127.0.0.1:1080
请将Username Localhost Password三处改为您自己登陆服务器的用户名、服务器地址和密码。

4. 执行这个批处理文件,保持其窗口开启,一旦关闭代理便失效。代理服务器地址为:127.0.0.1:1080,使Socks5协议的代理,也可以更改为需要的端口。需要使用时请将相关信息正确部署至浏览器、即时通信软件内。

5. 开始使用!

下文转自:车东Blog:利用Putty通过ssh端口转发实现FireFox和MSN加密代理访问

参考原文:http://thinkhole.org/wp/2006/05/10/howto-secure-firefox-and-im-with-putty/
加密传输的机制如下:

1
2
3
4
5
                                    /  foo.com

浏览器 <==secure tunnel==>ssh server -   bar.com

                                     \   example.com

浏览器先通过加密通道链接到一台服务器上,然后通过这个服务器再访问整个互联网。主要的用途就是这个绕道访问。具体你需要通过加密通道绕过谁? 谁用谁知道……具体配置过程:
SSH登录工具Putty的登录设置中配置tunnel,目标设置为Dynamic,添加一个端口7070,再按Add,一个动态转发端口就实现了;
dynamic_tunnel.png
然后用相应帐号ssh登录后:除了登录的终端窗口意外,本地的7070连服务器的22端口之间就有了一个SSH加密的转发通道了。

为了方便切换,可以使用FireFox的SwitchProxy tool插件,设置socks代理通过本地的127.0.0.1:7070 进行传输。
switch_proxy.png
MSN的机制类似:就是在连接配置中设置sock5 加密代理。
附:
获得国外的SSH帐号或者有Dreamhost虚拟主机的可以增加ssh用户:都可以用类似机制进行加密访问。

感谢number5:

更简单方便的setup方式是使用 putty的后台命令行程序plink
plink -N username@remote.ssh.server -D 127.0.0.1:7070
其中 -N 表示不需要shell
username@remote.ssh.server 换成你ssh帐户名和主机域名或者地址
或者替换成 -load sessionname 也可以,用dreamhost上的帐号试了一下,真的很快

如何在Windows下使用密钥方式登录Linux服务器:
如果设置需要基于密钥的登录(如果不设置密钥密码,就可以自动登录了),
我没有试成使用puttygen生成的密钥(公钥/私钥)直接部署在Linux服务器上。目前成功的方法是:先在服务器上用服务器上用./ssh- keygen生成密钥对,将公钥 id_rsa.pub >> 部署到要登录到的服务器上:/home/username/.ssh/authorized_keys 中,密钥在Windows客户端下使用:将密钥 id_rsa下载到本地,然后用puttygen导入id_rsa 另存转换为putty格式的密钥id_rsa.ppk即可。然后使用 plink -i c:\path\to\id_rsa.ppk username@example.com方式登录。

注意:
加密通道和网站是否提供https没有直接的关系,https是指服务商直接向客户提供的加密,例如:GMail: https://mail.google.com/mail/, GReader: https://www.google.com/reader/view/,从ssh server到服务网站之间仍然是明文的http传输;
加密通道和匿名不匿名访问网站也没有直接关系。

发表评论

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