全部產品
Search
文件中心

Elastic Compute Service:使用第三方SSH用戶端遠端連線Linux執行個體時, 提示“No supported authentication methods available (server sent: publickey, gssapi-keyex, gssapi-with-mic)”錯誤怎麼辦?

更新時間:Aug 06, 2024

本文介紹使用第三方SSH用戶端遠端連線Linux執行個體時,提示“No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)”錯誤的問題原因和解決方案。

問題現象

當您使用第三方SSH用戶端遠端連線Linux系統的ECS執行個體時,輸入了正確的帳號和密碼,但是還是出現類似以下錯誤資訊。

Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
sshd[10826]: Connection closed by XX.XX.XX.XX
No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)

putty fatal error

問題原因

使用密碼或密鑰登入都可能出現該問題,具體說明如下:

  • 使用密碼登入出現該問題:可能是ECS執行個體內禁止使用者使用密碼方式串連,您可以將PasswordAuthentication參數值修改為yes以解決此問題。具體操作,請參見方案一:允許使用密碼方式登入

  • 使用密鑰登入出現該問題:可能是ECS執行個體內禁止了密鑰登入或SSH金鑰組的公開金鑰未加入對應使用者.ssh/authorized_keys中,您可以檢查/etc/ssh/sshd_config檔案或重新上傳公開金鑰到authorized_keys檔案中以解決此問題。具體操作,請參見方案二:複製公開金鑰到authorized_keys檔案

方案一:允許使用密碼方式登入

  1. 以VNC方式登入ECS執行個體。

    具體操作,請參見通過密碼認證登入Linux執行個體

  2. 查看/etc/ssh/sshd_config的參數PasswordAuthentication配置是否有誤。

    sudo cat /etc/ssh/sshd_config

    如下圖所示,PasswordAuthentication參數設定為no,表示禁止以密碼方式登入,需要修改為yes

    image

  3. PasswordAuthentication no修改為PasswordAuthentication yes

    1. 開啟SSH設定檔。

      sudo vim /etc/ssh/sshd_config
    2. PasswordAuthentication no修改為PasswordAuthentication yes

      image

    3. 按Esc鍵,輸入:wq儲存修改。

  4. 執行如下命令,重啟SSH服務。

    sudo systemctl restart sshd.service
  5. 重新遠端連線Linux執行個體,如果可以正常串連,說明問題已解決。

方案二:複製公開金鑰到authorized_keys檔案

  1. 以VNC方式登入ECS執行個體。

    具體操作,請參見通過密碼認證登入Linux執行個體

  2. 查看/etc/ssh/sshd_config的參數PubkeyAuthentication配置是否有誤。

    sudo cat /etc/ssh/sshd_config
    • PubkeyAuthentication參數為yes時,說明可能是SSH金鑰組的公開金鑰未加入對應使用者.ssh/authorized_keys中,請執行步驟4

    • PubkeyAuthentication參數為no,表示禁止以密鑰方式登入,需要修改為yes。請執行步驟3

      image

  3. PubkeyAuthentication no修改為PubkeyAuthentication yes

    1. 開啟SSH設定檔。

      sudo vim /etc/ssh/sshd_config
    2. PubkeyAuthentication no修改為PubkeyAuthentication yes

      image

    3. 按Esc鍵,輸入:wq儲存修改。

    4. 執行如下命令,重啟SSH服務。

      sudo systemctl restart sshd.service
  4. 複製公開金鑰到authorized_keys檔案。

    1. 執行如下命令,開啟authorized_keys檔案。

      sudo vim /home/user/.ssh/authorized_keys
      說明

      /home/user請替換成實際的使用者。

    2. i鍵進入編輯模式。

    3. 將本地儲存的公開金鑰粘貼到authorized_keys檔案中。

    4. Esc鍵,輸入:wq退出編輯模式。

  5. 重新遠端連線Linux執行個體,如果可以正常串連,說明問題已解決。