2012-05-29 38 views
-1

我必須登錄更多然後150服務器並執行一些unix命令。 問題是,如果我創建一個腳本,它將從一臺服務器運行,並將SSH登錄到150臺服務器並執行cmds並退出。 如何使用任何密碼提示登錄? 由於某種原因,我不應該使用ssh-keygen公鑰和私鑰方法,或者使用像「expect」這樣的bash行的一些額外工具。沒有任何提示的ssh登錄

是否有任何正常的方式來做單用戶名/密碼@ servername通過ssh登錄,就像我們在sqlplus和ftp中有選項一樣。

+2

不,沒有。要麼使用一個鍵(你不想要的),要麼使用一個像expect的工具(你也不想這樣做)。 –

+1

我會嚴重質疑爲什麼你不能使用這些技術(如果這不僅僅是一些練習)。 – Edu

回答

4

有一個名爲sshpass的實用程序,允許您在命令行中指定密碼。

Ubuntu下/ Debian的使用sudo apt-get install sshpass

sshpass -p 'abcedf' ssh [email protected] "df > ~/test; cat ~/test; rm ~/test;"

希望安裝這有助於

+0

謝謝喬...非常有幫助的迴應.. – user1011046

+2

接受答案,然後,請? –

1

你可以嘗試建立無論是在每個遠程主機的~/.shosts/etc/ssh/shosts.equiv。有關詳細信息,請參見「驗證」下的man ssh