3
我想編寫一個bash腳本,它發送一個密碼來與遠程服務器進行身份驗證。如何在Bash腳本中發送認證詳細信息?
例如,我想編寫一個將代碼從github存儲庫中提取到服務器的bash腳本,但我必須指定一個密碼或passpharse來執行此操作。
我該如何編碼?我嘗試了幾件事,但沒有奏效。
我想編寫一個bash腳本,它發送一個密碼來與遠程服務器進行身份驗證。如何在Bash腳本中發送認證詳細信息?
例如,我想編寫一個將代碼從github存儲庫中提取到服務器的bash腳本,但我必須指定一個密碼或passpharse來執行此操作。
我該如何編碼?我嘗試了幾件事,但沒有奏效。
我認爲這是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
預計是使用一個非常好的工具,特別是如果你有提交/拉/ etc掛鉤,提示額外的輸入。 – 2011-12-28 14:14:56
我同意! +1 ... – 2011-12-28 17:02:17
'autoexpect'是另一個好工具。我喜歡用它來創建原始腳本,然後進入並編輯我認爲需要修復的部分。 – SiegeX 2011-12-28 18:09:06