Linux

帶有批處理文件的 SFTP 雙重身份驗證

  • November 3, 2021

我正在嘗試連接到(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"

-b阻止互動式身份驗證(您嘗試通過 模擬的內容)sshpass

相反,您需要將命令傳遞給sshpass標準輸入。

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

像這裡:

如何將 sshpass 命令放入 bash 腳本中?


切勿使用StrictHostKeyChecking=no,除非您不關心安全性。

引用自:https://unix.stackexchange.com/questions/675942