本文主要介紹無法遠程登入Linux執行個體的排查方法。
應急登入Linux執行個體:如果您遇到緊急情況,需要儘快登入Linux執行個體執行營運操作,您可以先使用VNC的方式登入執行個體,具體操作,請參見通過VNC串連執行個體。
問題原因
SSH遠程登入失敗的原因可能包括PAM安全架構、安全性群組、SSH配置等。請您根據實際情況,通過相應的排查方法,排查並解決無法遠端連線Linux執行個體的問題。
沒有明確的報錯資訊
使用自助問題排查工具
阿里雲的自助問題排查工具可以協助您快速檢測安全性群組配置、執行個體內部防火牆以及常見應用連接埠監聽狀態,並給出明確的診斷報告。
單擊進入自助問題排查頁面,並切換至目標地區。
如果自助問題排查工具未能定位您的問題,請繼續下面的步驟進行手動排查。
手動排查問題
在遠端連線失敗時,如果您沒有收到系統返回的報錯資訊,您可以根據以下步驟手動排查問題:
步驟一:使用阿里雲Workbench工具測試遠程登入
通過阿里雲提供的Workbench工具進行遠程登入,Workbench工具在遠程登入出現異常時會返回具體的錯誤資訊及解決方案。測試步驟如下:
訪問ECS控制台-執行個體。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
單擊目標執行個體ID進入執行個體詳情頁,單擊遠程連接。
在彈出的遠程連接對話方塊中,單擊通過Workbench遠端連線對應的立即登錄。
測試是否可以遠程登入。
Workbench工具將自動填滿登入目標執行個體所需的基本資料,請確認基本資料的正確性並輸入登入的使用者名稱和認證資訊。並根據以下結果進行處理:通過Workbench遠程登入Linux執行個體的具體操作,請參見通過Workbench遠程登入Linux執行個體。
如仍然無法登入,Workbench工具會返回錯誤提示和解決方案,請根據提示進行處理。處理完畢後重新使用Workbench工具進行遠程登入測試。為了便於您解決問題,列舉Workbench工具使用時常見的異常問題: 通過VNC遠端連線執行個體的問題
如可以通過Workbench工具正常登入,說明目標執行個體上的SSH服務正常運行,即排除SSH服務端異常的可能性,繼續執行步驟二:檢查網路進行排查。
步驟二:檢查網路
無法正常遠端連線Linux執行個體時,需要先檢查網路是否正常。
用其他網路環境中,不同網段或不同電訊廠商的電腦串連對比測試,判斷是本網問題還是伺服器端的問題。
如果是本網問題或電訊廠商問題,請聯絡本地IT人員或電訊廠商解決。
如果是網卡驅動存在異常,請重新安裝。
在本地用戶端使用ping命令測試與執行個體的網路連通性。
網路異常時,請進行抓取資料包進行分析,具體操作,請參見使用抓包工具進行網路資料包抓取。
當出現ping丟包或ping不通時,可以通過
tracert或mtr等工具進行鏈路測試來判斷問題根源。具體操作,請參見使用MTR工具進行網路鏈路分析。系統核心沒有禁ping的情況下,使用ping命令測試ECS伺服器,發現網路不通,可能是伺服器系統內部防火牆對用戶端進行了drop策略。
具體操作,請參見無法ping通ECS執行個體公網IP的排查方法。
步驟三:檢查連接埠和安全性群組
檢查安全性群組配置是否允許遠端連線的連接埠。
訪問ECS控制台-執行個體。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
在執行個體列表頁面,單擊對應的執行個體ID。
在安全性群組頁簽下,單擊安全性群組操作列的管理規則。
在安全性群組詳情頁面,在訪問規則地區的入方向頁簽下,單擊增加規則,按以下參數添加規則。
授權策略:允許
優先順序:1(代表安全規則中優先順序最高,數字越小優先順序越高)
協議:自訂 TCP
訪問來源:設定為本機IP,可以訪問
https://cip.cc/擷取本機IP訪問目的(本執行個體):選擇SSH(22)
使用以下命令,進行連接埠測試,判斷連接埠是否正常。
telnet [$IP] [$Port]說明[$IP]指Linux執行個體的IP地址。
[$Port]指Linux執行個體的RDP連接埠號碼。
系統顯示類似如下,比如執行
telnet 192.168.0.1 22命令,正常情況下返回結果類似如下。Trying 192.168.0.1 ... Connected to 192.168.0.1. Escape character is '^]'如果連接埠測試失敗,請參見能ping通ECS執行個體但連接埠不通的排查方法進行排查。
步驟四:檢查CPU負載、頻寬及記憶體使用量情況
無法正常遠端連線時,可能是因為CPU負載、頻寬不足或記憶體不足導致。
根據是否存在CPU負載過高情況,選擇相應操作。
存在CPU負載過高情況。
若應用程式有大量的磁碟訪問、網路訪問行為、高計算需求,CPU負載過高是正常結果。建議您升配執行個體規格來解決資源瓶頸問題,具體操作,請參見升降配執行個體概述。
說明CPU負載過高的解決方案,請參見Linux系統CPU負載的查詢和案例分析。
不存在CPU負載過高情況,請繼續下一步排查。
排查是否存在公網頻寬不足問題。
無法遠端連線可能是公網頻寬不足導致的,具體排查方法如下。
訪問ECS控制台-執行個體。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
在執行個體列表,單擊對應的執行個體ID,在配置資訊地區,查看公網頻寬。
如果伺服器頻寬為0 Mbps,說明購買執行個體時沒有購買公網頻寬,您可以通過升級頻寬解決,具體操作,請參見更改頻寬配置(網路資源)。
排查是否存在記憶體不足問題。
遠端連線Linux執行個體後,不能正常顯示案頭並直接退出,也沒有錯誤資訊提示。這種情況可能是伺服器記憶體不足導致,需要檢查伺服器的記憶體使用量情況。具體操作如下。
使用VNC方式登入Linux執行個體。
具體操作,請參見通過密碼認證登入Linux執行個體。
查看記憶體使用量情況,如果存在記憶體不足情況,建議您升配執行個體規格來解決資源瓶頸問題,具體操作,請參見升降配執行個體概述。
存在明確的報錯資訊
遠程登入失敗時,系統通常會返回報錯資訊。您可以根據報錯資訊,快速定位問題原因及解決方案。
PAM安全架構
Linux系統的PAM安全架構可以載入相關安全模組,對雲端服務器的賬戶策略、登入策略等進行存取控制。如果相關配置存在異常,或觸發了相關策略,就可能會導致SSH登入失敗。常見案例:
Linux執行個體系統內容配置
Linux內的系統內容,例如中毒、賬戶配置、環境變數配置等,如果出現異常,也可能會導致SSH登入失敗。常見案例:
SSH服務及參數配置
SSH服務的預設設定檔為/etc/ssh/sshd_config。設定檔中的相關參數配置異常,或啟用了相關特性或策略,也可能會導致SSH登入失敗。常見案例:
SSH服務關聯目錄或檔案配置
SSH服務基於安全性考慮,在運行時,會對相關目錄或檔案的許可權配置、屬組等進行檢查。過高或過低的許可權配置,都可能會引發服務運行異常,進而導致用戶端登入失敗。常見案例:
SSH服務密鑰配置
SSH服務採用非對稱式加密技術,對所傳輸的資料進行加密。用戶端及服務端會交換和校正相關密鑰資訊的有效性。常見案例: