在bash脚本中将密码传递给sftp

mtk*_*mtk 1 passwords bash sftp

我想自动化一个bash脚本,它使用sftp连接到服务器并进行文件传输.我有这个密码,最初我试过这个

sftp $acc@$host << EOF
<passwd_here>
cd $dir
get $file
quit
EOF
Run Code Online (Sandbox Code Playgroud)

但它仍然提示输入密码,我必须在提示时手动输入密码.

搜索完SO之后,我发现这个帖子有一个解决方案expect,我试过,我得到了以下错误:

脚本:

sftp -b cmdfile.txt $acc@$host
expect "Password:"
send "<passwd>\n";
interact
Run Code Online (Sandbox Code Playgroud)

错误:

Permission denied (publickey,keyboard-interactive).
Run Code Online (Sandbox Code Playgroud)

cmdfile.txt

cd $dir
get $file
quit
Run Code Online (Sandbox Code Playgroud)

请告诉我,如何使用bash脚本中的密码进行连接?

小智 5

请尝试以下步骤

lftp -u $user,$pass sftp://$host << --EOF--
cd $directory
put $srcfile
quit
--EOF--
Run Code Online (Sandbox Code Playgroud)