(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
標準輸入。
sshpass -e sftp -o 'PasswordAuthentication=yes' \
-o 'PreferredAuthentications=publickey,password' user@hostname < batfile.txt
像這兒:
如何將 sshpass 指令放入 bash 腳本中?
永遠不要使用StrictHostKeyChecking=no
,除非您不關心安全性。