OpenSSH是远程管理类Unix系统和许多网络设备的标准工具。然而,大多数系统管理员只使用获取命令行所需的最低OpenSSH功能。
本书以任务为导向。
任何管理类Unix的人都必须了解SSH。OpenSSH是最常用的SSH实现。
非系统管理员但必须通过SSH连接服务器的人也会发现这本书很有帮助。
SSH——Secure Shell,安全外壳。是一种用于在两个联网主机之间创建加密通信通道的协议。
SSH保护两台机器之间的数据传输,使其他人无法窃听。
Tatu Ylönen于1995年创建了最初的协议和实现,旨在取代telnet、RSH和rlogin等不安全的协议。1999年OpenSSH发布,SSH迅速成为管理主机的标准方法。如今,许多不同的软件包都依赖SSH协议,在私有、公共和敌对网络之间进行加密和身份验证良好的数据传输。
OpenSSH是部署最广泛的SSH协议实现。它最初是原始SSH软件的自由许可版本的分支,但经过了大量重写、扩展和更新。
OpenSSH是OpenBSD项目的一部分,OpenBSD项目是一个以编写安全软件闻名的社区。OpenSSH是Linux和BSD世界中的标准SSH实现,也用于惠普、思科、甲骨文、Novell、Juniper、IBM等大公司的产品中。
OpenSSH有两个版本:OpenBSD和Portable OpenSSH。
OpenSSH的主要开发是作为OpenBSD的一部分进行的。他们将OpenSSH保持在与OpenBSD其余部分相同的简单、安全代码标准下。这个版本的OpenSSH很小,很安全,但只支持OpenBSD。OpenSSH Portability Team(可移植性团队)采用OpenBSD版本,并添加了使OpenSSH在其他操作系统上工作所需的胶水(glue),创建了Protable(可移植) OpenSSH。不同的操作系统不仅使用不同的编译器、库等,而且具有不同的身份验证系统。Portable OpenSSH团队需要考虑每个平台上的所有这些差异。他们尽最大努力隐藏这种复杂性,所以你不必担心。这本书适用于这两个版本。
任何操作系统都可能附带OpenSSH,或者操作系统供应商提供了一个软件包。甚至微软也在其Linux层提供了一个OpenSSH包。
OpenSSH在BSD风格的许可证下可用。你可以将其用于任何目的,没有任何附加条件。如果OpenSSH崩溃,你不能起诉软件作者,也不能声称你编写了OpenSSH,但你可以以任何方式使用它,包括将其添加到你自己的产品中。
SSH服务器在网络上监听传入的SSH请求,对这些请求进行身份验证,并提供系统命令提示符(或你配置的其他服务)。最流行的SSH服务器是OpenSSH的sshd。
使用SSH客户端连接到远程服务器或网络设备。
Windows系统中最流行的SSH客户端是PuTTY。类Unix系统的标准SSH客户端时OpenSSH的ssh。两者都是免费的,可用于任何目的,无论是商业还是非商业,都是免费的。
Windows系统包含了一个SSH客户端,它是Windows Linux子系统的一部分。如果要使用Windows原生(native)SSH,建议在PowerShell环境中使用。
SSH协议有两个版本,SSH-1(版本1)和SSH-2(版本2)。始终使用SSH-2。所有现代SSH软件默认为版本2。您会发现仍然依赖SSH版本1的旧嵌入式设备,但SSH-1几乎不比未加密的telnet更安全。
SSH-1出现在1990年代,缺乏安全性,凭借当今的计算能力,极易受到攻击。
安全的外表比没有安全更糟糕。
不要让SSH客户端请求SSH-1。不要让你的SSH服务器提供SSH-1。
SSH-2是现代标准。该协议的设计是为了在发现漏洞时快速解决漏洞。我们不断增长的计算能力使今天的强加密成为明天的安全风险,因此SSH-2的设计使其算法和协议可以就地升级。
SCP和SFTP(第7章)等协议构建在SSH之上。
不包括将SSH与Kerberos或SecurID集成,或将SSH安装挂接到Google身份验证器,或将您的SSH代理用作第三方程序的身份验证源。这些都是有趣的话题,但非常特定于平台,在你读完这本书之前很可能会发生变化。对身份验证选项感兴趣的系统管理员可能会发现我的书《PAM Mastery》(Tilted Windmill 出版社,2016)很有用。