【发布时间】:2012-09-20 07:51:09
【问题描述】:
我想自动化一个 bash 脚本,它使用 sftp 连接到服务器并进行文件传输。我有这个密码,最初我尝试过这个
sftp $acc@$host << EOF
<passwd_here>
cd $dir
get $file
quit
EOF
但它仍然提示输入密码,我必须在提示时手动输入。
搜索SO后,我发现this post有expect的解决方案,我尝试了以下错误:
脚本:
sftp -b cmdfile.txt $acc@$host
expect "Password:"
send "<passwd>\n";
interact
错误:
Permission denied (publickey,keyboard-interactive).
cmdfile.txt
cd $dir
get $file
quit
请告诉我,如何在 bash 脚本中使用密码进行连接?
【问题讨论】:
-
可以写更好的
expect scripts,但我建议在您的客户端主机上安装 sshpass。 sshpass 比 sftp 更安全,更不容易出错。