通过密码在bash脚本为sftp(pass password to sftp in a bash s

2019-09-22 16:03发布

我想自动化bash脚本,在使用SFTP连接到服务器并执行文件传输。 我对这个密码,并初步我想这个

sftp $acc@$host << EOF
<passwd_here>
cd $dir
get $file
quit
EOF

但它仍然提示输入密码,我不得不在提示符下手动输入。

SO搜索后,我发现这个职位它有一个解决方案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脚本中使用密码连接?

Answer 1:

与SCP / SFTP你应该使用基于密钥的认证。 从用户的公钥要在服务器上进行身份验证进入副本的〜/ .ssh / authorized_keys文件,为的要在其上登录的用户的主目录。 在客户端上明文存储密码是不是一个好的做法,要知道:)这样从阅读提示密码过于你“解决方法”的问题。



Answer 2:

请尝试以下步骤

lftp -u $user,$pass sftp://$host << --EOF--
cd $directory
put $srcfile
quit
--EOF--


Answer 3:

是基于密钥的身份验证是要走的路。 检查这里的一些方向。



文章来源: pass password to sftp in a bash script