本文介紹使用第三方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)
問題原因
使用密碼或密鑰登入都可能出現該問題,具體說明如下:
使用密碼登入出現該問題:可能是ECS執行個體內禁止使用者使用密碼方式串連,您可以將
PasswordAuthentication
參數值修改為yes
以解決此問題。具體操作,請參見方案一:允許使用密碼方式登入。使用密鑰登入出現該問題:可能是ECS執行個體內禁止了密鑰登入或SSH金鑰組的公開金鑰未加入對應使用者
.ssh/authorized_keys
中,您可以檢查/etc/ssh/sshd_config
檔案或重新上傳公開金鑰到authorized_keys
檔案中以解決此問題。具體操作,請參見方案二:複製公開金鑰到authorized_keys檔案。
方案一:允許使用密碼方式登入
以VNC方式登入ECS執行個體。
具體操作,請參見通過密碼認證登入Linux執行個體。
查看
/etc/ssh/sshd_config
的參數PasswordAuthentication
配置是否有誤。sudo cat /etc/ssh/sshd_config
如下圖所示,
PasswordAuthentication
參數設定為no
,表示禁止以密碼方式登入,需要修改為yes
。將
PasswordAuthentication no
修改為PasswordAuthentication yes
。開啟SSH設定檔。
sudo vim /etc/ssh/sshd_config
將
PasswordAuthentication no
修改為PasswordAuthentication yes
。按Esc鍵,輸入
:wq
儲存修改。
執行如下命令,重啟SSH服務。
sudo systemctl restart sshd.service
重新遠端連線Linux執行個體,如果可以正常串連,說明問題已解決。
方案二:複製公開金鑰到authorized_keys
檔案
以VNC方式登入ECS執行個體。
具體操作,請參見通過密碼認證登入Linux執行個體。
查看
/etc/ssh/sshd_config
的參數PubkeyAuthentication
配置是否有誤。sudo cat /etc/ssh/sshd_config
將
PubkeyAuthentication no
修改為PubkeyAuthentication yes
。開啟SSH設定檔。
sudo vim /etc/ssh/sshd_config
將
PubkeyAuthentication no
修改為PubkeyAuthentication yes
。按Esc鍵,輸入
:wq
儲存修改。執行如下命令,重啟SSH服務。
sudo systemctl restart sshd.service
複製公開金鑰到
authorized_keys
檔案。執行如下命令,開啟
authorized_keys
檔案。sudo vim /home/user/.ssh/authorized_keys
說明/home/user請替換成實際的使用者。
按
i
鍵進入編輯模式。將本地儲存的公開金鑰粘貼到
authorized_keys
檔案中。按
Esc
鍵,輸入:wq
退出編輯模式。
重新遠端連線Linux執行個體,如果可以正常串連,說明問題已解決。