Ruby-Net::SSH,SSH(安全外壳)协议

SSH(or"安全外壳")是一种网络协议,允许您通过加密信道与远程主机交换数据。它'最常用作Linux和其他类似UNIX系统的交互式shell。您可以使用它登录Web服务器并运行一些命令来维护网站。但是,它也可以做其他事情,例如传输文件和转发网络连接。

Net::SSH是Ruby与SSH交互的一种方式。使用这个gem,您可以连接到远程主机,运行命令,检查它们的输出,传输文件,转发网络连接,并做任何通常会使用SSH客户端的事情。如果您经常与远程Linux或类似UNIX的系统交互,这是一个强大的工具。

安装Net::SSH

Net::SSH库本身就是纯粹的红宝石-它不需要其他GEM,也不需要't需要一个编译器来安装。但是,它确实依靠OpenSSL库来完成所需的所有加密。要查看是否安装了OpenSSL,请运行以下命令。

如果上面的Ruby命令输出OpenSSL版本,则已安装'并且一切都应该起作用。Ruby的Windows一键式安装程序包括OpenSSL,许多其他Ruby发行版也是如此。

要安装Net::SSH库本身,请安装Net SSHgem。

基本用法

使用Net::SSH最常见的方法是使用Net::SSH.start方法。此方法采用主机名,用户名和密码,并将返回代表会话的对象,或将其传递给块(如果给定)。如果给start方法一个块,连接将在块的末尾关闭。否则,当您'重新完成连接时,您必须手动关闭连接。

教育_1

以下示例登录远程主机并获取ls(列表文件)逗号的输出nd。

在上面的块中,ssh对象指的是打开和验证的连接。使用此对象,您可以启动任意数量的命令,并行启动命令,传输文件等。您还可能注意到密码已作为哈希参数传递。这消化科普是因为SSH允许各种身份验证方案,并且您需要告诉它这是密码。