2011-12-28 40 views
3

我想編寫一個bash腳本,它發送一個密碼來與遠程服務器進行身份驗證。如何在Bash腳本中發送認證詳細信息?

例如,我想編寫一個將代碼從github存儲庫中提取到服務器的bash腳本,但我必須指定一個密碼或passpharse來執行此操作。

我該如何編碼?我嘗試了幾件事,但沒有奏效。

回答

7

我認爲這是discussed很多,但你可以使用expect。下面是用它來使用SSH連接到主機的例子:

#!/usr/bin/expect 

set password "YOURPASSWORD" 
set user "john" 
set host "192.168.1.100" 

spawn ssh [email protected]$host 
expect "Password:" 
send "$password\n"; 
interact 

把你的「混帳拉」或任何命令,而不是產卵後「SSH用戶@主機」。確保預期的提示(在這種情況下爲「密碼:」)正好是運行衍生命令後的顯示方式。

編輯:安裝想到的是容易的,在Debian它(如果你喜歡使用apt-get代替資質):

aptitude install expect 
+0

預計是使用一個非常好的工具,特別是如果你有提交/拉/ etc掛鉤,提示額外的輸入。 – 2011-12-28 14:14:56

+0

我同意! +1 ... – 2011-12-28 17:02:17

+1

'autoexpect'是另一個好工具。我喜歡用它來創建原始腳本,然後進入並編輯我認爲需要修復的部分。 – SiegeX 2011-12-28 18:09:06

相關問題