我需要編寫一個shell腳本來連接到不同的Linux機器並在那裏刪除文件。如何在Linux腳本中提供密碼
例如,
ssh booksserver
rm -rf Books-ws.war
現在,我的問題是,我怎麼能提供密碼(SSH執行時booksserver需要)?
我需要編寫一個shell腳本來連接到不同的Linux機器並在那裏刪除文件。如何在Linux腳本中提供密碼
例如,
ssh booksserver
rm -rf Books-ws.war
現在,我的問題是,我怎麼能提供密碼(SSH執行時booksserver需要)?
您應該創建密鑰對並使用它來代替密碼。 Google瞭解如何操作,例如http://pkeck.myweb.uga.edu/ssh/
您不應該提供密碼。您應該設置public key authentication運行ssh-agent
登錄,系統不會要求您輸入密碼。
您不能,但必須使用基於密鑰的身份驗證。
即:
有很多關於此的教程,具體步驟可能因分發而不同。對於Ubuntu,這是一個不錯的選擇:https://help.ubuntu.com/community/SSH/OpenSSH/Keys
您也可以使用密碼短語來完成此操作,但在運行腳本之前會運行代理並添加一次。 –
在客戶端使用無密碼私鑰,使用特定命令(例如服務器端authorized_keys文件中的公鑰)配對會更好如rm -rf Books-ws.war
,或者一些執行相同操作的shell腳本)。
例如,具有.ssh/authorized_keys2
以下遠程主機上的指定用戶:
command="date" ssh-rsa AAAAB3NzaC1yc2EAAAABIw[...]Q== Comment for passphraseless key
威爾只有曾經遇到date
當您連接使用該密鑰:
[localhost] % ssh -i /path/to/id [email protected]
Sun 20 Nov 2011 20:29:59 EST
Connection to remotehost closed.
可能已經很明顯,但是,我想你知道你可以在同一行寫命令來在bookserver中執行rm -rf嗎? – Miquel