巧用SSH做代理服务器

更新:车东文中提到的获得国外的SSH帐号 我已经搞定。http://silenceisdefeat.org/~dupola/。不过我还没搞清楚到底怎么用它来做代理,不过我相信我可以搞定的。。。。。目前也用不上。
另外,不清楚这个Unix系统帐号明年需要不需要继续赞助……另外,给的ssh密码也不知道如何修改,难道要写信过去?

转自:Shawn’s Blog.

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

操作步骤如下:

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

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

3. 新建一个文件,写入以下内容,另存为.bat批处理文件,并放在Putty的安装目录内。
@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/

加密传输的机制如下:

                                     /  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传输;
加密通道和匿名不匿名访问网站也没有直接关系。

22 条评论了已经

发表评论

名字(必须)
邮箱(必须),(不会被公布)
网址(推荐)

字体为 粗体 是必填项目,邮箱地址 永远不会 公布。

允许部分 HTML 代码:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URLs(网站链接)必须完整有效 (比如: http://dupola.com),所有标签都必须完整的关闭。

超出部分系统将会自动分段及换行。

请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。