来源:国际反封锁联盟

SSH,即安全外壳(Secure Shell),是一种标准协议,可对您的计算机和服务器之间的通信内容进行加密。该加密技术可以防止通信内容被网络运营商查看或修改。SSH可广泛应用于安全通信应用,最常见的就是安全登录服务器,以及安全文件转移(安全复制,SCP或安全文件传输协议,SFTP)。

SSH尤其适用于绕开网络审查,因为它可以提供加密隧道,充当一个通用代理客户端。审查者不能完全屏蔽SSH,因为它不仅仅用来绕开网络审查;比如系统管理员也会使用SSH通过网络管理服务器。

使用SSH时需要一个服务器上的账户,通常使用Unix或Linux服务器。为了绕开审查,该服务器需要能自由访问网络,并且提供者最好是信得过的人。有些公司也销售服务器账户,并且很多网络虚拟主机服务可以提供SSH访问。您可以在这里找到一个外壳账户提供商名单:http://www.google.com/Top/Computers/Internet/Access_Providers/Unix_Shell_Providers/,每个账户每月收费2-10美元。

大部分Unix,Linux,和Mac OS计算机上已经预装了一个叫做OpenSSH的SSH程序,作为一个命令行程序,从终端计算机上输入“ssh”就可以运行。Windows用户也可以使用一个叫做PuTTY的免费SSH工具。

所有新版SSH都支持创建防火墙安全会话转换协议(SOCKS)代理,允许网页浏览器和很多其它软件通过加密SSH链接使用未经屏蔽的网络。在本例中,我们仅讨论SSH的这种应用。下列步骤将告诉您如何通过一个叫做accountname@example.com的外壳账户,在计算机的本地1080端口上设置一个SOCKS代理。 

Linux/Unix以及MacOS命令行(以OpenSSH为例)

您可以从http://www.openssh.com/得到OpenSSH,但一般Linux/Unix和Mac OS计算机上会预装该程序。您需要一个服务器账户,并且该服务器可以自由访问网络。

resized_640x218_ssh_1.png

您将运行的ssh指令包含一个本地端口号(通常为1080),一个服务器名,以及一个用户名(账户名)。如下所示:

ssh -D localportnumber accountname@servername

然后会提示您输入密码,接着您就可以登录到服务器。通过使用-D选项,您可以建立一个本地SOCKS代理,只要您的计算机连接在服务器上,该代理就不会消失。现在您就可以验证主机密钥、设置您的程序了。

Windows图形用户界面(以PuTTY为例) 

您可以从http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html下载到PuTTY。您可以把putty.exe程序保存到您的硬盘上,以备将来使用,或者您也可以直接从网站上运行该程序(通常,您可以在共用或公共的计算机上实现,比如图书馆或者网吧里的计算机)。

启动PuTTY后,您可以看到一个配置对话框。首先,您要输入打算访问的SSH服务器的主机名(地址)。如果您只知道IP地址,或者DNS屏蔽让您无法使用主机名,您可以用IP地址代替。如果您需要经常进行此操作,您可以选择创建一个PuTTY档案,这样就可以保存这些选项及后续选项以便将来使用。

PuTTY_config_1.jpg

接下来,在目录(Category)列表选择连接(Connection)–> SSH,然后选择隧道(Tunnels)。

在源端口(Source port)后输入1080,然后选中“动态(Dynamic)”和“Ipv4”选项框。

PuTTY_config_2.jpg

现在点击添加(Add)按钮,接着点击“打开(Open)”按钮。之后会建立一个到服务器的连接,然后会弹出一个窗口,提示您输入用户名(username)和密码(password)。

putty_connection1.jpg

输入这些信息后您就可以登录到服务器,然后会收到一条来自服务器的命令行提示。这样就建立了SOCKS代理。

accountname_example_com_____2008_11_12__23_51_32_1.jpg

主机密钥验证

当您第一次连接到服务器时,会提示您确认该服务器的主机密钥指纹(host key fingerprint)。主机密钥指纹是一长串可以安全识别特定服务器的字母和数字(十六进制),比如:57:ff:c9:60:10:17:67:bc:5c:00:85:37:20:95:36:dd。

检查主机密钥指纹是一项安全措施,可以确保您是在和您想要连接的服务器进行通信,并且加密后的连接无法破解。(SSH没有提供自动验证方法。为了享用该安全机制带来的好处,您应该和服务器提供者一起核对主机密钥指纹,或者让一个信得过的人连接同一台服务器,看其是否可以看到同样的指纹。)

如果您想确保让SSH保护您的通信内容不被窃听,验证主机密钥指纹就很有必要;但如果您只想绕开审查,而不在乎网络运营商时候可以看到您的通信内容,则没有必要验证指纹。

配置程序,使用代理

只要您不关闭SSH程序,通过以上步骤建立的代理会一直有效。但如果您的网络连接被中断了,您需要重复上面的步骤,重新激活代理。

启动并运行代理之后,您需要设置软件以使用代理。通过以上步骤,您得到的是一个位于本地主机(localhost)的SOCKS代理,端口为1080(也即127.0.0.1,端口1080)。您应该确保软件设置可以阻止DNS泄漏,否则SSH的隐私保护和审查绕行效果可能会受到影响。

需翻墙软件请发电邮(最好用Gmail)到:caonimaaiziyouATgmail.com