バッチファイルによる 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)

バッチファイル内でパスワードを指定しようとしましたが、うまくいきませんでした。

sshpass私が達成しようとしていることは可能ですか?batchfileもしそうなら、誰かが私を助けてくれませんか?

バッチファイル:

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

答え1

は、-b対話型認証( によってシミュレートしようとするものsshpass)を防止します。

代わりに、コマンドをsshpassstdin に渡す必要があります。

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

ここのような:
bash スクリプト内に sshpass コマンドを配置するにはどうすればいいですか?


StrictHostKeyChecking=noセキュリティを気にしない限り、は絶対に使用しないでください。

関連情報