2009-06-25 90 views
3

我想從遠程服務器上將文件複製到本地。這裏是我的腳本來運行它,通過使用「預期」在密碼使用'expect'自動發送密碼

scp [email protected]:/folder/myFile ./ 
expect "Password: " 
send "myPassword" 

當我運行這個automaticlally發送時,它仍然會提示「密碼」,有什麼不好?

回答

1

從你正在嘗試做的事情聽起來,你可能會更好地使用ssh與公鑰和私鑰。你可以谷歌的ssh-keygen教程開始。

4

請不要留下這樣的腳本,將其他人拿起並在其他地方使用....嘗試public key authentication,這是非常容易設置。

10

雖然我與山姆和NIK,回答你的問題同意的是,你沒有「敲回車」:

send "mypassword\r" 
5

這expect腳本做這項工作(感謝'zedwood'

#!/usr/bin/expect -f 
set filename [lindex $argv 0] 
set timeout -1 
spawn scp $filename [email protected]:/home/myusername/ 
set pass "mypassword" 
expect { 
     password: {send "$pass\r" ; exp_continue} 
     eof exit 
} 
+0

我在stackoverflow上找到的第一個工作腳本!感謝你的分享!我總是偶然發現我不應該以這種方式使用期望的建議......其實我正在開發一個程序,我應該在一臺路由器上測試它的sshd服務器不支持公鑰認證Orz。使用期望是我唯一的救贖。 – 2016-09-12 08:44:42

相關問題