共用方式為


連線到 Azure 中 Linux VM 問題的詳細 SSH 疑難排解步驟

適用於:✔️ Linux VM

有許多可能的原因,即 SSH 用戶端可能無法連線到 VM 上的 SSH 服務。 如果您已遵循較 一般 SSH 疑難解答步驟,則必須進一步針對連線問題進行疑難解答。 本文會引導您完成詳細的疑難解答步驟,以判斷 SSH 連線失敗的位置,以及如何加以解決。

採取初步步驟

下圖顯示所涉及的元件。

顯示 SSH 服務的元件圖表。

下列步驟可協助您隔離失敗的來源,並找出解決方案或因應措施。

  1. 檢查入口網站中 VM 的狀態。 在 Azure 入口網站 中,選取 [虛擬機>VM 名稱]。

    VM 的狀態窗格應該會顯示 [ 執行中]。 向下卷動以顯示計算、記憶體和網路資源的最新活動。

  2. 選取 [設定 ] 以檢查端點、IP 位址、網路安全組和其他設定。

    VM 應該已針對您可以在端點或網路安全組中檢視 SSH 流量定義端點。 使用 Resource Manager 建立的 VM 端點會儲存在網路安全組中。 確認規則已套用至網路安全組,並在子網中參考。

若要確認網路連線能力,請檢查已設定的端點,並查看您是否可透過其他通訊協定連線到 VM,例如 HTTP 或其他服務。

這些步驟之後,請再次嘗試 SSH 連線。

尋找問題的來源

由於下列區域中的問題或設定錯誤,您電腦上的 SSH 用戶端可能無法連線到 Azure VM 上的 SSH 服務:

來源 1:SSH 用戶端電腦

若要將您的電腦排除為失敗的來源,請確認它可以對另一部內部部署、以Linux為基礎的電腦進行SSH連線。

醒目提示 SSH 用戶端計算機元件的圖表。

如果連線失敗,請檢查電腦上的下列問題:

  • 封鎖輸入或輸出 SSH 流量的本機防火牆設定 (TCP 22)
  • 本機安裝的用戶端 Proxy 軟體會防止 SSH 連線
  • 本機安裝的網路監視軟體,以防止 SSH 連線
  • 監視流量或允許/不允許特定流量類型的其他類型的安全性軟體

如果其中一個條件適用,請暫時停用軟體,並嘗試對內部部署計算機進行 SSH 連線,以找出計算機上封鎖連線的原因。 然後,請與您的網路管理員合作,更正軟體設定以允許 SSH 連線。

如果您使用憑證驗證,請確定您擁有主目錄中 .ssh 資料夾的這些權限:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (或任何其他儲存私鑰的檔案)
  • Chmod 644 ~/.ssh/known_hosts (包含您已透過 SSH 連線的主機)

來源 2:組織邊緣裝置

若要將組織邊緣裝置排除為失敗來源,請確認直接連線到因特網的計算機可以連線到您的 Azure VM。 如果您要透過站對站 VPN 或 Azure ExpressRoute 連線存取 VM,請跳至 來源 3:網路安全組

醒目提示組織邊緣裝置的圖表。

如果您沒有直接連線到因特網的計算機,請在自己的資源群組或雲端服務中建立新的 Azure VM,並使用該新的 VM。 如需詳細資訊,請參閱 在 Azure 中建立執行 Linux 的虛擬機。 當您完成測試時,請刪除資源群組或 VM 和雲端服務。

如果您可以使用直接連線到因特網的電腦建立 SSH 連線,請檢查您的組織邊緣裝置:

  • 使用因特網封鎖 SSH 流量的內部防火牆
  • 防止 SSH 連線的 Proxy 伺服器
  • 入侵偵測或網路監視軟體在邊緣網路中防止 SSH 連線的裝置上執行

請與您的網路管理員合作,更正組織邊緣裝置的設定,以允許因特網的SSH流量。

來源3:網路安全組

網路安全組可讓您更細微地控制允許的輸入和輸出流量。 您可以建立橫跨 Azure 虛擬網路中子網和雲端服務的規則。 檢查網路安全組規則,以確保允許來自因特網的 SSH 流量。 如需詳細資訊,請參閱 關於網路安全組

您也可以使用IP驗證來驗證 NSG 設定。 如需詳細資訊,請參閱 Azure 網路監視概觀

來源 4:以 Linux 為基礎的 Azure 虛擬機

可能問題的最後一個來源是 Azure 虛擬機本身。

醒目提示以Linux為基礎的 Azure 虛擬機的圖表。

如果您尚未這麼做,請依照指示 重設以Linux為基礎的虛擬機密碼。

再次嘗試從您的電腦連線。 如果仍然失敗,以下是一些可能的問題:

  • SSH 服務未在目標虛擬機器上執行。
  • SSH 服務未在 TCP 連接埠 22 上接聽。 若要測試,請在本機計算機上安裝 telnet 用戶端,然後執行 “telnet cloudServiceName.cloudapp.net 22”。 此步驟可判斷虛擬機器是否允許對 SSH 端點進行輸入和輸出通訊。
  • 目標虛擬機器上的本機防火牆具有防止輸入或輸出 SSH 流量的規則。
  • 在 Azure 虛擬機上執行的入侵偵測或網路監視軟體正在防止 SSH 連線。

其他資源

如需針對應用程式存取進行疑難解答的詳細資訊,請參閱 針對在 Azure 虛擬機上執行之應用程式的存取進行疑難解答。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。