【发布时间】:2010-11-05 21:50:36
【问题描述】:
我正在尝试将文件从远程服务器复制到本地。这是我运行它的脚本,通过使用“期望”自动发送密码
scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"
当我运行这个时,它仍然提示“密码”,这是怎么回事?
【问题讨论】:
标签: linux bash shell scp expect
我正在尝试将文件从远程服务器复制到本地。这是我运行它的脚本,通过使用“期望”自动发送密码
scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"
当我运行这个时,它仍然提示“密码”,这是怎么回事?
【问题讨论】:
标签: linux bash shell scp expect
这个期望脚本完成了这项工作(感谢'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
}
【讨论】:
虽然我同意 Sam 和 nik,但您的问题的答案是您没有“按 Enter”:
send "mypassword\r"
【讨论】:
请不要留下这样的脚本,否则可能会被其他人捡起并在其他地方使用……试试public key authentication,它很容易设置。
【讨论】:
从您尝试做的事情来看,您最好将 ssh 与公钥和私钥一起使用。您可以 google 搜索 ssh-keygen 教程以开始使用。
【讨论】: