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

安裝Net::SSH

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

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

要安裝Net::SSH庫本身,請安裝Net SSHgem。

基本用法

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

教育_1

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

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