6

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

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

当我运行它时,它仍然提示“密码”,这是怎么回事?

4

4 回答 4

12

这个期望脚本可以完成这项工作(感谢'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
}
于 2013-02-28T11:50:15.773 回答
11

虽然我同意 Sam 和 nik,但您的问题的答案是您没有“按 Enter”:

send "mypassword\r"
于 2009-06-26T04:46:39.123 回答
5

甚至请不要留下这样的脚本,这些脚本可能会被其他人拾取并在其他地方使用……尝试使用公钥身份验证,它很容易设置。

于 2009-06-25T16:59:53.820 回答
-5

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

于 2009-06-25T16:55:34.277 回答