本文介紹使用第三方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實例,如果可以正常連接,說明問題已解決。