身份驗證失敗

身份驗證失敗
You have no controlling tty and no DISPLAY.  Cannot read passphrase.
warning: Authentication failed.
Disconnected (local); authentication cancelled by user (Authentication cancelled by user.).
Disconnect reason 13, exit code = 77
scp: warning: ssh2 client failed to authenticate. (or you have too old ssh2 installed, check with ssh2 -V)

當我運行腳本時出現此錯誤。 ssh 在伺服器之間以兩種方式工作

答案1

您的問題是您正在使用某種需要使用者輸入的身份驗證方法(在您的情況下,顯然是一個用於解密私鑰的密碼,或者可能是密碼),但您的程式無法接收任何使用者輸入,因為它沒有啟動在圖形會話中(防止ssh產生詢問密碼的視窗表單)或在終端機中(因此ssh無法以互動方式詢問您密碼)。

ssh當您測試開啟工作階段時有效,因為在這種情況下您是ssh在終端機中啟動,因此取得密碼沒有問題。

如果您的腳本在沒有控制 tty 的情況下運行(例如,作為 cron 作業),您需要的是非互動式身份驗證。例如,沒有密碼的私鑰。當然,這有些不安全,您可能希望限制腳本通過 ssh 可執行的命令集,以防止攻擊者知道私鑰以在伺服器上獲得功能齊全的 shell。

相關內容