扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
比较“安全 shell(SSH)”和“虚拟网络计算(VNC)” 在这两篇文章的第一篇中,David 比较和对照了“安全 shell(SSH)”和“虚拟网络计算(VNC)”,这两种技术允许用户在一台工作站上运行位于另一台计算机上的应用程序。(他没有涉及文件和打印共享或诸如 httpd、ftpd、smtp 或 nntpd 之类的“因特网”服务,虽然这些技术也可以有效地“共享”上述计算机中的某些资源。)然而,他确实给出了 SSH 和 VNC 的安装和配置的提示,并评论了工具的稳定性、选项和许可证状况。
为有效地测试各种软件程序和撰写关于它们的文章,我在自己的本地网络上配备了大量计算机。这些机器运行各种操作系统并使用各种硬件配置。有时我会在各种平台上评测工具;而有时候会测试和调试自己编写的工具。
我网络上的大多数机器都以多重引导配置的方式安装了多种操作系统,但也有一些是“无头的”(无监视器或键盘)。虽然多重引导装入器适于容纳多种操作系统,但由于只在一台机器上进行测试,重新引导的时间开销使得多平台的详细比较测试花费了更多时间。多重引导不太利于“并排”比较。我没有评测过任何让您在一个系统内“虚拟”另一个系统的工具,譬如 VMWare、Plex86、VirtualPC、SheepShaver 或者其它工具。在某些方面,这些工具实现了我将在本文中讨论的那些工具的用途。
有几种不同的技术允许用户在一台工作站上运行位于另一台计算机上的应用程序。SSH 提供到远程计算机的文本终端;可以使用“X Window 系统”在一些工作站上显示交互式应用程序,而这些应用程序实际上运行在另一台工作站上;VNC 可以作为对于整个远程桌面的“远程控制”。每种技术都有优点和缺点。它们都在 Linux 上运行,但不同变体(主机或远程)允许与其它各种 OS 环境(用于异构网络)进行交互。使用这些工具的组合,我可以坐在一台工作站(具有最好的监视器、键盘和椅子的那一台)前,运行、测试并对多个平台上(通常不用重新引导任何系统)的应用程序进行计时。
我的网络设置
我的本地网络上有七个节点,命名为 Apollo、Bacchus、Chaos、Delphi、Echo、Fury 和 Gaia。分别为这些节点分配了从 192.168.1.101 到 192.168.1.107 的 IP 地址。大多数情况下,同一物理机器在多重引导到不同操作系统时总是获得相同 IP 地址(但有时我使用 DHCP,它分配 192.168.1.200 以上的地址)。整个网络位于一个硬件防火墙/路由器后,我充分信任防火墙,对于运行在本地机器上的服务,我也许并没有象应有的那样过分猜疑。(需要在因特网上共享计算机的读者应该比我更担心安全性问题。这两篇文章中的第二部分加入一些关于安全性问题的讨论。)
我提及了上面的大部分细节,以便您可以遵循我在下面给出的一些 shell 示例。我实际操作的机器是 Bacchus,它的本地 IP 地址是 192.168.1.102。
安全 shell(ssh)
最节省带宽的连接计算机方法是通过简单文本 shell。完成这个操作的非安全工具是 telnet 和 rsh,但使用这些工具会引起很多安全性问题,因此最好在所有需要通信的计算机上安装 ssh。尽管下面的一些示例在我的防火墙之内使用了 telnet,但这种折衷办法也是以下事实的产物 — “Fury”目前专用于安装和重新安装测试操作系统。缺省情况下,许多类 UNIX 操作系统(包括最新的 Linux 分发版(distribution))将安装 ssh;如果没有安装,请参阅本文后面的参考资料来安装它。
安全 shell(ssh)对通过特定通道的所有信息流都进行加密。因为使用了公钥(public-key)加密,所以,服务器和客户机不必在会话开始(initiation)之前共享密钥。此外,机密不会在通道中以未加密格式传输(譬如,使用 telnet 传输登录密码则任何拦截器都可以截获它)。其它协议 — 例如 VNC 或 X Window — 可以位于 ssh 顶部,但是这些协议最简单的用途是用于创建远程文本控制台。
使用 ssh,可以轻易地连接到与本地机器运行不同操作系统的机器上。唯一的要求是,远程机器运行 sshd 服务器,而本地机器要有 ssh 客户机。例如,要从运行 OS/2 Warp 的“Bacchus”机器连接到隔壁运行 Slackware Linux 的“Delphi”机器,就象下列清单一样简单:
使用 ssh 通过 HOSTS 名称连接到远程机器
|
如果我的 HOSTS 文件未定义别名,可以使用:
使用 ssh 通过 IP 连接到远程机器
|
同样地,我经常通过使用下列命令跨越国界,在全世界管理我租用的 Web 服务器:使用 ssh 通过 DNS 名称连接到远程机器
|
对于异构平台上的 ssh 来说,最困难的事情是正确地获得终端配置。实际上,这个问题并不是 ssh 本身的问题(telnet 也有同类的问题)。将两台 Linux 机器连接在一起几乎总是能无缝地工作。但是将安装其它平台的机器作为客户机或服务器时,显示总是不太正确,或者键绑定不象预期的那样工作。当涉及“非类 UNIX”平台诸如 Win32、BeOS、MacOS 和 OS/2 时,问题似乎尤其严重,但即使将 FreeBSD 与 Linux 连接也有缺点。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者