使用批处理文件的 SFTP 双重身份验证

使用批处理文件的 SFTP 双重身份验证

(publickey,password)我正在尝试连接到启用了双重身份验证的服务器。我使用sshpass提供密码来自动执行脚本,但是当我使用 SFTP 提供批处理文件时,连接会失败,而批处理文件连接不会成功

export SSHPASS=helloworld

(sshpass -e sftp -b batfile.txt -o 'PasswordAuthentication=yes' \
 -o 'PreferredAuthentications=publickey,password' -o 'StrictHostKeyChecking=no' user@hostname)

错误:

Permission denied (password).
Couldn't read packet: Connection reset by peer

连接成功,无需批处理文件

(sshpass -e sftp -o 'PasswordAuthentication=yes' \
 -o 'PreferredAuthentications=publickey,password' -o 'StrictHostKeyChecking=no' user@hostname)

我尝试在批处理文件中提供密码,但没有成功。

我是否有可能想要实现的目标,如果是的sshpassbatchfile,有人可以帮助我吗

批处理文件:

echo  "Hey, I'm from Inside"  
!echo "Hey, I'm from Outside"

答案1

-b会阻止交互式身份验证(您尝试通过 模拟sshpass)。

相反,您需要将命令传递到sshpass标准输入。

sshpass -e sftp -o 'PasswordAuthentication=yes' \
 -o 'PreferredAuthentications=publickey,password' user@hostname < batfile.txt

像这儿:
如何将 sshpass 命令放入 bash 脚本中?


永远不要使用StrictHostKeyChecking=no,除非您不关心安全性。

相关内容