Ssh

如果公鑰身份驗證失敗,如何使 ssh 失敗而不是提示輸入密碼?

  • June 19, 2020

我有一個腳本,它使用公鑰身份驗證對幾台伺服器進行 SSH 連接。由於配置問題,其中一台伺服器已停止讓腳本登錄,這意味著腳本卡在“密碼:”提示中,顯然無法回答,因此它甚至不嘗試其餘伺服器在列表中。

如果密鑰認證失敗,有沒有辦法告訴 ssh 客戶端不要提示輸入密碼,而是只報告連接錯誤並讓我的腳本繼續?

對於 OpenSSH,有 BatchMode,它除了禁用密碼提示之外,還應該禁用查詢密鑰的密碼片語。

批處理模式

> > 如果設置為“yes”,密碼片語/密碼查詢將被禁用。此選項在沒有使用者提供密碼的腳本和其他批處理作業中很有用。論據必須是“是”或“否”。預設值為“否”。 > > >

範例用法:

ssh -oBatchMode=yes -l <user> <host> <dostuff>
  • 要禁用目前 ssh 連接嘗試的密碼身份驗證,請在命令行上傳遞此選項:
-o PasswordAuthentication=no
  • 要禁用所有未來連接到任何主機的密碼身份驗證,請將以下內容添加到您的~/.ssh/config
PasswordAuthentication no
  • 要僅對某些主機禁用它,請將以下內容添加到 ~/.ssh/config:
Host host1 host2 host3...
   PasswordAuthentication no

上述選項適用於傳出ssh 連接,即您嘗試連接到遠端 ssh 伺服器的位置。

要在 ssh 伺服器上禁用密碼驗證(即適用於所有傳入的ssh 連接),請添加並重新PasswordAuthentication no啟動./etc/ssh/sshd_config``sshd

引用自:https://serverfault.com/questions/61915