問題現象
使用第三方SSH用戶端遠端連線 Linux 執行個體時,帳號和密碼正確,但串連被拒絕,並返回以下任一類似錯誤資訊:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic) #錯誤資訊 1: 嘗試的認證方法均被伺服器拒絕。
No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic) #錯誤資訊 2:未能找到共同支援的認證方法。
Connection closed by XX.XX.XX.XX # 錯誤資訊 3: 伺服器在認證階段主動關閉了串連。解決方案
密碼登入失敗:檢查執行個體配置,確認是否已禁止密碼登入。
檢查執行個體配置,確認是否已禁止密鑰登入。
檢查目標使用者的 ~/.ssh/authorized_keys 檔案,確認公開金鑰已正確添加。
情境一:密碼登入失敗
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過VNC遠端連線。輸入帳號和密碼,登入ECS執行個體。
啟用密碼認證。
編輯SSH設定檔。確保
PasswordAuthentication參數的值為yes。如果該行被注釋,請先移除行首的#符號。sudo vim /etc/ssh/sshd_config重啟SSH服務,使配置生效。
Alibaba Cloud Linux、CentOS類型。
sudo systemctl restart sshd.serviceDebian、Ubuntu類型。
sudo systemctl restart ssh.service
問題驗證。
在第三方SSH用戶端再次使用密碼遠端連線Linux執行個體,驗證問題是否解決。
情境二:密鑰登入失敗
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
修改SSH檔案,允許密鑰方式登入。
編輯SSH設定檔。
sudo vim /etc/ssh/sshd_config在編輯模式下,找到
PubkeyAuthentication參數。若其值為
no或該行被#注釋,表示禁止密鑰方式登入。需刪除#並修改為yes後,儲存並退出檔案。若其值為
yes,需複製公開金鑰到使用者authorized_keys檔案。
複製公開金鑰到使用者
authorized_keys檔案。root使用者
編輯
authorized_keys檔案。sudo vim /root/.ssh/authorized_keys將公開金鑰內容粘貼到檔案中,每個公開金鑰佔一行。配置完成後儲存並關閉檔案。
設定檔案許可權。
錯誤的許可權會導致 SSH 登入失敗。
sudo chmod 700 /root/.ssh sudo chmod 600 /root/.ssh/authorized_keys
非root使用者
命令中
<username>替換為待使用公開金鑰登入的使用者名稱。編輯
authorized_keys檔案。sudo vim /home/<username>/.ssh/authorized_keys將公開金鑰內容粘貼到檔案中,每個公開金鑰佔一行。配置完成後儲存並關閉檔案。
設定檔案許可權。
錯誤的許可權會導致 SSH 登入失敗。
sudo chown -R <username>:<username> /home/<username>/.ssh sudo chmod 700 /home/<username>/.ssh sudo chmod 600 /home/<username>/.ssh/authorized_keys
重啟SSH服務,使配置生效。
Alibaba Cloud Linux、CentOS類型。
sudo systemctl restart sshd.serviceDebian、Ubuntu類型。
sudo systemctl restart ssh.service
問題驗證。
在第三方SSH用戶端再次使用密鑰遠端連線Linux執行個體,驗證問題是否解決。