使用批次檔的 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,除非您不關心安全性。

相關內容