Ruby-Net::SSH,SSH(安全外殼)協(xié)議

SSH(or"安全外殼")是一種網(wǎng)絡(luò)協(xié)議,允許您通過加密信道與遠(yuǎn)程主機(jī)交換數(shù)據(jù)。它'最常用作Linux和其他類似UNIX系統(tǒng)的交互式shell。您可以使用它登錄Web服務(wù)器并運(yùn)行一些命令來維護(hù)網(wǎng)站。但是,它也可以做其他事情,例如傳輸文件和轉(zhuǎn)發(fā)網(wǎng)絡(luò)連接。

Net::SSH是Ruby與SSH交互的一種方式。使用這個(gè)gem,您可以連接到遠(yuǎn)程主機(jī),運(yùn)行命令,檢查它們的輸出,傳輸文件,轉(zhuǎn)發(fā)網(wǎng)絡(luò)連接,并做任何通常會(huì)使用SSH客戶端的事情。如果您經(jīng)常與遠(yuǎn)程Linux或類似UNIX的系統(tǒng)交互,這是一個(gè)強(qiáng)大的工具。

安裝Net::SSH

Net::SSH庫(kù)本身就是純粹的紅寶石-它不需要其他GEM,也不需要't需要一個(gè)編譯器來安裝。但是,它確實(shí)依靠OpenSSL庫(kù)來完成所需的所有加密。要查看是否安裝了OpenSSL,請(qǐng)運(yùn)行以下命令。

如果上面的Ruby命令輸出OpenSSL版本,則已安裝'并且一切都應(yīng)該起作用。Ruby的Windows一鍵式安裝程序包括OpenSSL,許多其他Ruby發(fā)行版也是如此。

要安裝Net::SSH庫(kù)本身,請(qǐng)安裝Net SSHgem。

基本用法

使用Net::SSH最常見的方法是使用Net::SSH.start方法。此方法采用主機(jī)名,用戶名和密碼,并將返回代表會(huì)話的對(duì)象,或?qū)⑵鋫鬟f給塊(如果給定)。如果給start方法一個(gè)塊,連接將在塊的末尾關(guān)閉。否則,當(dāng)您'重新完成連接時(shí),您必須手動(dòng)關(guān)閉連接。

教育_1

以下示例登錄遠(yuǎn)程主機(jī)并獲取ls(列表文件)逗號(hào)的輸出nd。

在上面的塊中,ssh對(duì)象指的是打開和驗(yàn)證的連接。使用此對(duì)象,您可以啟動(dòng)任意數(shù)量的命令,并行啟動(dòng)命令,傳輸文件等。您還可能注意到密碼已作為哈希參數(shù)傳遞。這消化科普是因?yàn)镾SH允許各種身份驗(yàn)證方案,并且您需要告訴它這是密碼。