笔记 by 车东

利用Putty/Plink通过ssh tunnel端口转发实现FireFox和Chrome的加密代理访问

· 桌面应用|Desktop

2010-01-25更新: 如果需要使用远端服务器的DNS:在Firefox中about:config设置 network.proxy.socks_remote_dns ==> true

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

浏览器先通过加密通道链接到一台服务器上,然后通过这个服务器再访问整个互联网。主要的用途就是这个绕道访问。

具体配置过程: 在SSH登录工具Putty的登录设置中配置tunnel,目标设置为Dynamic,添加一个端口7070,再按Add,一个动态转发端口就实现了; 然后用相应帐号ssh登录后:除了登录的终端窗口意外,本地的7070连服务器的22端口之间就有了一个SSH加密的转发通道了。在自己Windows机器上可以用命令行: netstat -n -a 看到有这样一条: TCP [::1]:7070 [::]:0 LISTENING 0

为了方便切换,可以使用FireFox的SwitchProxy tool插件,设置socks代理通过本地的127.0.0.1:7070 进行传输。

MSN和Chrome的机制类似:就是在连接配置中设置sock5 加密代理。

感谢number5:

如何在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方式登录。 完整配置: c:\Putty\plink.exe -N -i c:\Putty\foo.ppk bar@example.com -D 127.0.0.1:7070

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