Ruby-Net::SSH,SSH(安全外殼)協(xié)議
SSH(or"安全外殼")是一種網(wǎng)絡協(xié)議,允許您通過加密信道與遠程主機交換數(shù)據(jù)。它'最常用作Linux和其他類似UNIX系統(tǒng)的交互式shell。您可以使用它登錄Web服務器并運行一些命令來維護網(wǎng)站。但是,它也可以做其他事情,例如傳輸文件和轉(zhuǎn)發(fā)網(wǎng)絡連接。
Net::SSH是Ruby與SSH交互的一種方式。使用這個gem,您可以連接到遠程主機,運行命令,檢查它們的輸出,傳輸文件,轉(zhuǎn)發(fā)網(wǎng)絡連接,并做任何通常會使用SSH客戶端的事情。如果您經(jīng)常與遠程Linux或類似UNIX的系統(tǒng)交互,這是一個強大的工具。
安裝Net::SSH
Net::SSH庫本身就是純粹的紅寶石-它不需要其他GEM,也不需要't需要一個編譯器來安裝。但是,它確實依靠OpenSSL庫來完成所需的所有加密。要查看是否安裝了OpenSSL,請運行以下命令。
如果上面的Ruby命令輸出OpenSSL版本,則已安裝'并且一切都應該起作用。Ruby的Windows一鍵式安裝程序包括OpenSSL,許多其他Ruby發(fā)行版也是如此。
要安裝Net::SSH庫本身,請安裝Net SSHgem。
基本用法
使用Net::SSH最常見的方法是使用Net::SSH.start方法。此方法采用主機名,用戶名和密碼,并將返回代表會話的對象,或?qū)⑵鋫鬟f給塊(如果給定)。如果給start方法一個塊,連接將在塊的末尾關閉。否則,當您'重新完成連接時,您必須手動關閉連接。
以下示例登錄遠程主機并獲取ls(列表文件)逗號的輸出nd。
在上面的塊中,ssh對象指的是打開和驗證的連接。使用此對象,您可以啟動任意數(shù)量的命令,并行啟動命令,傳輸文件等。您還可能注意到密碼已作為哈希參數(shù)傳遞。這消化科普是因為SSH允許各種身份驗證方案,并且您需要告訴它這是密碼。