Wednesday, December 21, 2011

SSH 简单使用技巧

SSH 是一个“瑞士军刀”一样简单、多用途的工具,其优点早已被 IT 从业人士广为接受。但一般不是做 IT 的人士可能还不知道这是一个什么东西,能干什么。这里做一些简单的介绍,由于这是一个命令操作的工具,所以要预先警告一下。不过呢,电脑这东西其实是世界上最简单:因为它的基本原理是开关逻辑,一就是 1,二就是 10,并不复杂。

SSH 起源一位芬兰软件工程师,后来被 IETF 标准化成为因特网上一个标准用于安全远程电脑操作协议。同时,“SSH”也用来指称各种电脑系统中用 SSH 协议的软件,比较常见的有微软视窗上的 PuTTY 和支持多种电脑系统的 OpenSSH。我经常使用这两个软件,主要是 PuTTY 的窗口尺寸可以随意改变,而且 PuTTY 还支持串行口联机,而在 Cygwin 里面还没找到一个好用的串口联机软件。

简单技巧
  • ssh hostname
最简单的,当然就是远程联机。只要远端主机上运行 SSH 服务,就可以安全地远程联机。当然,这样地远程联机方式只能在远端主机上使用命令行操作。
  • 安全通道
安全通道可以用来保护一些不安全的网络协议,这样可以通过本来不安全的全球互联网来安全地进行远程操作。比如,如果远端机只支持明码的 HTTP,而不支持加密的 HTTPS,就可以通过 SSH 安全通道来加密。
家庭网络常见的路由器一般只支持 HTTP 来对路由器进行设置,如果在家庭网络上有一台 SSH 服务器,就可以安全地对家里的路由器做远程设置。举例说明:
     ssh -L8080:192.168.1.1:80 home-host
这里假设家里的路由器内部网址是 192.168.1.1。这条命令在用户与 home-host 之间建起一个安全通道,明码传输只在 home-host 和家里的路由器之间,这样远程控制家里的路由器就像在家里一样安全了。操作的时候,只要在浏览器里打入 http://localhost:8080/ 即可象在家一样安全进入 http://192.168.1.1/
这个办法也可以用来穿越中国的防火墙对一些网站的封锁。比如:
     ssh -L8080:facebook.com:80 home-host
这个 SSH 联机成功之后,访问 http://localhost:8080/ 就等于访问 http://facebook.com/
  • scp: 安全的远程文件拷贝
SCP 是一个利用 SSH 协议,在互联网上两个计算机之间进行文件拷贝的一个软件。
     scp user@remote-host:path-to-file local-path
以上一条命令,就可以把远端主机 remote-host  上的文件拷贝过来。

复杂技巧

因为 SSH 主要用于用户远程访问,一旦某个用户通过 SSH 进入一台电脑之后,他就有这台电脑上用户的权限,可以做很多事情。有些情形要求对这些权限有所限制,比如,SSH 可以用来与 rsync 软件做远程数据备份,这种情况下,我们并不希望用户能够进入远端的主机,可以通过一个简单的设置来限制某个用户可以通过 SSH 密匙来做某些特殊的操作:

from="hostname",command="/usr/local/bin/validate-ssh.sh" <public-key>
以上斜体部分需要系统管理员填入。这一用法的好处是,系统管理员生成一对 SSH 密匙,将保密部分放在客户端机器上,在服务器端通过 /usr/local/bin/validate-ssh.sh 这个脚本命令可以限制客户端能够运行的程序,比如,限制客户端只能到服务器上运行 rsync,那么客户就不能用这个密匙来登录服务器了,但可以在没有人工操作的情形下做文件备份。

SSH 的用处还很多,以上只是触及皮毛而已。下面这个参考资料介绍了在微软视窗里安装 SSH 服务器软件,当然 Cygwin 整个环境都值得安装,不过那是后话了。

参考资料:
  1. Installing the Cygwin SSH daemon, Kevin Scully, Info Systems and Technology, University of Waterloo, 200 University Avenue West, Waterloo, Ontario, Canada N2L 3G1

No comments:

Post a Comment