讓我們假設我想將ssh寫入1.2.3.4的腳本,然後調用 ls。 問題是,當調用「ssh 1.2.3.4」行時,密碼是 必需的,因此流程即使在我填寫密碼時也會停止, 腳本不會繼續。 如何在給定密碼後繼續執行腳本?Linux腳本 - 密碼步驟削減流程
Thx!
讓我們假設我想將ssh寫入1.2.3.4的腳本,然後調用 ls。 問題是,當調用「ssh 1.2.3.4」行時,密碼是 必需的,因此流程即使在我填寫密碼時也會停止, 腳本不會繼續。 如何在給定密碼後繼續執行腳本?Linux腳本 - 密碼步驟削減流程
Thx!
其實你試圖在本地運行ls,但你打開了一個ssh會話。所以在會話打開之前它不會運行ls。如果要遠程運行ls,你應該使用
ssh [email protected] COMMAND
其中命令是要運行的命令。一旦命令被調用,Ssh會話就會結束,您可以正常捕獲其輸出。
我建議你爲需要ssh的腳本使用RSA認證方法。
我只是嘗試這個腳本:
#!/bin/sh
ssh vps1 ls
mkdir temp
cd temp
echo test > file.txt
和它的作品。我可以連接到我的服務器並列出我的家。然後,在本地創建臨時目錄,cd進入它,然後用'test'創建file.txt。
你想做公鑰驗證。這裏有一些應該讓你去的資源。
http://magicmonster.com/kb/net/ssh/auto_login.html
http://www.cs.rpi.edu/research/groups/vision/doc/auto/ssh/ssh_public_key_authentication.html
我會後一對夫婦更多的聯繫,但我沒有足夠的聲望點數。 ;)如果您需要更多幫助,只需在「SSH自動登錄」或「SSH公鑰認證」上進行。
雖然建議使用它,但他可以不使用它。 – Zagorax
寫簡單的登錄bash腳本命名login_to並給EXEC權限(CHMOD 744 login_to)
#!/bin/bash
if [ $1 = 'srv1' ]; then
echo 'srv1-pass' | pbcopy
ssh [email protected]
fi
if [ $1 = 'foo' ]; then
echo 'barbaz' | pbcopy
ssh -t [email protected] 'cd ~/somedir/someotherdir; bash'
fi
現在這樣使用它
login_to SRV1
login_to富
當記者問對於密碼,只需命令(ctrl + v或command + v),您將會登錄。
調用此行後,完成後腳本不會繼續。 (我想繼續在我身邊做東西) – user1413824
+1爲RSA認證建議 – 2012-06-15 18:25:48
已添加和示例。我已經使用RSA身份驗證和密碼身份驗證嘗試過它,並且它完美地工作。你可以請更具體嗎? – Zagorax