长期以来,Linux系统管理员门就知道“安全外壳”协议SSH是软件工具包中最便利也是最关键的工具之一。通过在工作站的X Windows环境运行多终端模拟器,或者通过Screen工具,Linux或其它Unix系统管理员都可以轻松的同时管理多个系统。SSH可以通过网络管理外壳或Perl脚本安全快速的实现一次性自动管理多台服务器。
当然,其它网络外壳工具,如RSH,出现的时间比SSH更久。但SSH为了文件在网络上安全传输,加入了强大的加密和数据压缩功能,大部分流行的SSH甚至还提供了SFTP和SCP功能。
在众多SSH中,最流行的就是由OpenBSD社团主持开发和维护的OpenSSH项目。OpenSSH可以用在目前几乎全部的操作系统平台上,包括微软Windows。不过在Windows平台上使用时,大部分都是作为基于Unix系统(如Linux, Solaris, 以及 OpenBSD)上的OpenSSH服务器的客户端。
SSH的作用
SSH通过强大的加密功能保护完整的远程外壳线程不被黑客和恶意软件入侵。端到端的保护能力可以从线程开始到结束提供完整的保护,比如它会在用户发送用户名和密码前,首先在客户端与服务器端确立连接,并交换该线程的加密密钥。SSH的加密方式很多,包括AES, 3DES, 以及 Blowfish等。虽然受信主机认证方案以及系统间的预先密钥交换有助于提高安全性,但是OpenSSH并不需要证书或者预先密钥交换来确立一个加密的远程线程。
另外,由于SSH会在数据传输前进行压缩,因此可以有效的提高某些类型数据的网络传输速度。SSH可以通过SFTP功能使得类似FTP类的文件传输线程具有加密能力,同时可以让用户的密码以及用户名以加密方式传输,而非明文方式传输。对于限制更多的情况,如单一文件传输操作,SCP也同样可以实现安全和方便的传输能力,它会通过一个加密的文件拷贝命令实现文件在网络上的传输,就好像大部分SSH命令一样。
对于目前的加密通讯来说,SSH是一个常见的网络协议。它本来是为了替代以前所使用的非加密协议RSH的,但是随着技术发展和功能的扩充,它已经不仅仅是带有加密功能的RSH了,而是对RSH的各项功能都进行了扩充、加强和完善的新网络工具。
OpenSSH for Linux
将OpenSSH安装到主流的Linux产品中非常简单,只需要一个简单的包管理命令。比如要在Debian GNU/Linux中安装OpenSSH,你只需要以root身份登录,并在命令行方式输入apt-get install ssh。同样,在Fedora Core Linux中,你也只需要以root身份登录,并输入yum install ssh即可。不过一般情况下,这两个命令行也不需要,因为Debian和Fedora Core中,已经默认安装了OpenSSH。对于任何Linux系统,如果你想查看它是否安装了OpenSSH,只需要简单的输入ssh即可。回车后,如果系统已经安装了OpenSSH,则会返回如下所示的使用方法提示:
$ ssh
usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
[-D port] [-e escape_char] [-F configfile]
[-iidentity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[user@]hostname [command]
有关OpenSSH的完整使用信息,可以查看OpenSSH的manpage。Manpage是传统的Unix手册文档系统的一部分,要想在Linux上查看OpenSSH的manpage,只需要在命令行中输入man ssh 。之后返回的信息将告诉你OpenSSH客户端的命令行可选项、配置文件、各个版本的已知bug、会影响操作的外壳环境变量以及相关的manpage。从中你可以发现,与之相关的manpage还包括sshd(OpenSSH服务器)的manpage,ssh-agent(SSH登录管理工具)的manpage,以及OpenSSH工具包中的一系列工具。