2012-06-15 46 views
0

讓我們假設我想將ssh寫入1.2.3.4的腳本,然後調用 ls。 問題是,當調用「ssh 1.2.3.4」行時,密碼是 必需的,因此流程即使在我填寫密碼時也會停止, 腳本不會繼續。 如何在給定密碼後繼續執行腳本?Linux腳本 - 密碼步驟削減流程

Thx!

回答

0

其實你試圖在本地運行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。

+0

調用此行後,完成後腳本不會繼續。 (我想繼續在我身邊做東西) – user1413824

+0

+1爲RSA認證建議 – 2012-06-15 18:25:48

+0

已添加和示例。我已經使用RSA身份驗證和密碼身份驗證嘗試過它,並且它完美地工作。你可以請更具體嗎? – Zagorax

0

寫簡單的登錄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),您將會登錄。