使用'expect'自动发送密码

时间:2009-06-25 16:47:32

标签: linux bash shell scp expect

我正在尝试将文件从远程服务器复制到本地。这是我运行它的脚本,使用'expect'自动发送密码

scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"

当我运行它时,它仍然提示“密码”,出了什么问题?

4 个答案:

答案 0 :(得分:10)

虽然我同意Sam和nik,但问题的答案是你没有“点击进入”:

send "mypassword\r"

答案 1 :(得分:9)

这个期望脚本完成工作(感谢'zedwood'

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

答案 2 :(得分:4)

请不要留下其他人接收并在其他地方使用过的脚本....请尝试public key authentication,这很容易设置。

答案 3 :(得分:1)

从您尝试做的事情来看,听起来您可能最好使用带有公钥和私钥的ssh。你可以谷歌搜索ssh-keygen教程来开始。