2011-12-13 89 views
1

當開發一個shell腳本來從許多遠程服務器複製日誌時,我發現一個問題,我需要爲每個服務器的每個ssh連接傳遞一個密碼(這讓我非常緊張:)) 。我知道使用密鑰會更好,但由於我們的管理員,添加密鑰的過程需要很長時間。作爲選項,我發現可以使用expect命令,但它並未安裝在我們的服務器上,安裝也需要很長時間。Linux expect命令模擬

那麼,是否有可能通過純shell腳本來模擬expect命令行爲,以非交互方式將密碼傳遞給ssh?

+3

公鑰,cron + rsync,中央日誌記錄服務器,這個問題有很多解決方案......你真正的問題是你的管理員。 – 2011-12-13 18:07:51

回答

1

如果您有權訪問編譯器,則應該能夠從源代碼編譯expect。如果expect很難編譯,請嘗試empty,這是一個非常小而簡單的程序 - 如果有編譯,它也應該。 Here是一個使用它來自動登錄ssh的例子。

請注意其他人是正確的:ssh密鑰是你的朋友,而expectempty通常只是醜陋和不安全的解決方法。