二重認証が有効になっているサーバーに接続しようとしています(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
)を防止します。
代わりに、コマンドをsshpass
stdin に渡す必要があります。
sshpass -e sftp -o 'PasswordAuthentication=yes' \
-o 'PreferredAuthentications=publickey,password' user@hostname < batfile.txt
ここのような:
bash スクリプト内に sshpass コマンドを配置するにはどうすればいいですか?
StrictHostKeyChecking=no
セキュリティを気にしない限り、は絶対に使用しないでください。