2011-11-29 65 views
2

我需要編寫一個shell腳本來連接到不同的Linux機器並在那裏刪除文件。如何在Linux腳本中提供密碼

例如,

ssh booksserver 
rm -rf Books-ws.war 

現在,我的問題是,我怎麼能提供密碼(SSH執行時booksserver需要)?

+1

可能已經很明顯,但是,我想你知道你可以在同一行寫命令來在bookserver中執行rm -rf嗎? – Miquel

回答

1

您不應該提供密碼。您應該設置public key authentication運行ssh-agent登錄,系統不會要求您輸入密碼。

0

您不能,但必須使用基於密鑰的身份驗證。

即:

  • 您創建一個公鑰和私鑰(無密碼)
  • 公鑰複製到booksserver
  • 您通過用戶名和關鍵ssh作爲本:SSH用戶@書架服務器-i密鑰文件

有很多關於此的教程,具體步驟可能因分發而不同。對於Ubuntu,這是一個不錯的選擇:https://help.ubuntu.com/community/SSH/OpenSSH/Keys

+0

您也可以使用密碼短語來完成此操作,但在運行腳本之前會運行代理並添加一次。 –

1

在客戶端使用無密碼私鑰,使用特定命令(例如服務器端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. 
相關問題