連線至 Linux VM (英文)

若在 Azure 上裝載 Linux 虛擬機器,存取該 VM 最常見的方法是透過安全殼層通訊協定(SSH)。 Linux 和 Windows 中常見的標準 SSH 用戶端,都能讓您連線。 您也可以在任何瀏覽器中使用 Azure Cloud Shell

本文件說明如何透過 SSH 連線至具有公用 IP 的 VM。 如果您必須連線至沒有公用 IP 的 VM,請參閱 Azure Bastion 服務

必要條件

  • 您需要 SSH 金鑰組。 如果您還沒有金鑰組,Azure 會在部署流程中建立金鑰組。 如果您需要手動建立金鑰組的協助,請參閱在 Azure 中建立和使用 Linux VM 的 SSH 公開-私密金鑰組

  • 您需要現有的網路安全性群組 (NSG)。 大多數 VM 預設都有 NSG,但如果您還沒有 NSG,可以建立一個並手動連結。 如需詳細資訊,請參閱建立、變更或刪除網路安全性群組

  • 若要連線至 Linux VM,您必須開啟適當的連接埠。 通常 SSH 使用連接埠 22。 下列指示將假設開啟連接埠 22,而對於其他連接埠編號,程序也相同。 您可以使用疑難排解員或在 VM 設定中手動檢查,來驗證已針對 SSH 開啟適當的連接埠。 若要檢查連接埠 22 是否開啟:

    1. 在 VM 的頁面上,從左側功能表中選取 [網路]。

    2. 網路頁面上,檢查是否有規則允許您所用電腦 IP 位址連接埠 22 上的 TCP,與 VM 連線。 如果有規則,您可以移至下一節。

      Screenshot showing how to check to see if there's already a rule allowing S S H connections.

    3. 如果沒有規則,請選取 [新增輸入連接埠規則] 來新增規則。

    4. 針對 [服務],從下拉式清單中選取 [SSH]

      Screenshot showing where to choose S S H when creating a new N S G rule.

    5. 視需要編輯 [優先順序] 和 [來源]

    6. 在 [名稱]中,輸入 SSH

    7. 完成後,選取 [新增]

    8. 您現在應在輸入連接埠規則的資料表中具有 SSH 規則。

  • 您的 VM 必須有公用 IP 位址。 若要檢查您的 VM 是否有公用 IP 位址 ,請從左側功能表中選取 [概觀],然後查看 [網路] 區段。 如果您在 [公用 IP 位址] 旁看到 IP 位址,則表示您的 VM 具有公用 IP

    如果您的 VM 沒有公用 IP 位址,將如下所示:

    Screenshot of how the networking section looks when you don't have a public I P.

    若要深入瞭解如何將公用 IP 位址新增至現有的 VM,請參閱將公用 IP 位址與虛擬機器建立關聯

  • 確認您的 VM 正在執行。 在 [概觀] 索引標籤的 [基本資訊] 區段中,確認 VM 的狀態為 [正在執行]。 若要啟動 VM,請選取頁面頂端的 [啟動]。

    Screenshot showing how to check to make sure your virtual machine is in the running state.

連線時若遇到問題,也可以使用入口網站:

  1. 前往 Azure 入口網站以連線至 VM。 搜尋並選取 [虛擬機器]
  2. 然後從清單中選取虛擬機器。
  3. 從左側功能表中選取 [連線]
  4. 請選取適合您慣用連線方式的選項。 入口網站將帶您瞭解連線的必要條件。

連線至 VM

符合上述必要條件之後,您就可以連線至您的 VM。 開啟您選擇的 SSH 用戶端。 SSH 用戶端命令通常包含在 Linux、macOS 和 Windows 中。 如果使用 Windows 7 或更舊版本(預設不包含 Win32 OpenSSH),不妨考慮安裝 WSL 或從瀏覽器使用 Azure Cloud Shell

注意

下列範例假設 SSH 金鑰採用 key.pem 格式。 如果您使用 CLI 或 Azure PowerShell 下載金鑰,這些金鑰的格式可能是 id_rsa。

具有新金鑰組的 SSH

  1. 請確定您的公開金鑰和私密金鑰皆位於正確的目錄中。 該目錄通常是 ~/.ssh

    如果您手動產生金鑰或使用 CLI 產生金鑰,則金鑰可能已經存在。 不過,如果您從 Azure 入口網站下載 pem 格式的金鑰,則可能必須將金鑰移至正確的位置。 使用以下語法可移動金鑰:mv PRIVATE_KEY_SOURCE PRIVATE_KEY_DESTINATION

    例如,如果金鑰位於 Downloads 資料夾中,且 myKey.pem 是 SSH 金鑰的名稱,請輸入:

    mv /Downloads/myKey.pem ~/.ssh
    

    注意

    如果您使用 WSL,則會在 mnt/c/ 目錄中找到本機檔案。 因此,下載資料夾和 SSH 金鑰的路徑會是 /mnt/c/Users/{USERNAME}/Downloads/myKey.pem

  2. 請確認您有私密金鑰的唯讀存取權可以執行

    chmod 400 ~/.ssh/myKey.pem
    
  3. 使用下列語法執行 SSH 命令:ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    例如,如果您的 azureuser 是您所建立的使用者名稱,且 20.51.230.13 是您 VM 的公用 IP 位址,請輸入:

    ssh -i ~/.ssh/myKey.pem azureuser@20.51.230.13
    
  4. 驗證傳回的指紋。

    如果您從未與這個 VM 連線,系統會要求您驗證主機指紋。 誰都想接受系統顯示的指紋,但這會讓您面臨潛在的中間人攻擊。 您應一律驗證主機指紋。 您只需要在第一次從用戶端連線時執行此動作。 若要透過入口網站取得主機指紋,請使用「執行命令」功能來執行命令:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  5. 成功! 您現在應已連線至您的 VM。 如果您無法連線,請參閱疑難排解 SSH 連線

具有現有公開金鑰的 SSH

  1. 在 SSH 用戶端中執行下列命令。 在此範例中,20.51.230.13 是您 VM 的公用 IP 位址,而 azureuser 是您建立 VM 時建立的使用者名稱。

    ssh azureuser@20.51.230.13
    
  2. 驗證傳回的指紋。

    如果系統要求您驗證主機指紋之前,您目前的 SSH 用戶端從未與所需的 VM 連線。 雖然預設選項是接受系統顯示的指紋,但您可能會遭受「中間人攻擊」。 您要驗證主機的指紋,這只需要在用戶端第一次連線時完成。 若要透過入口網站取得主機指紋,請使用「執行命令」功能來執行命令:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. 成功! 您現在應已連線至您的 VM。 若不能連線,請參閱我們的疑難排解指南

密碼驗證

警告

這種型別的驗證方法不如 SSH 金鑰組安全,因此不建議使用。

  1. 在 SSH 用戶端中執行下列命令。 在此範例中,20.51.230.13 是您 VM 的公用 IP 位址,而 azureuser 是您建立 VM 時建立的使用者名稱。

    ssh azureuser@20.51.230.13
    

    如果您忘記密碼或使用者名稱,請參閱重設 Azure VM 的存取權

  2. 驗證傳回的指紋。

    如果系統要求您驗證主機指紋之前,您目前的 SSH 用戶端從未與所需的 VM 連線。 雖然預設選項是接受系統顯示的指紋,但您可能會遭受「中間人攻擊」。 您要驗證主機的指紋,這只需要在用戶端第一次連線時完成。 若要透過入口網站取得主機指紋,請使用「執行命令」功能來執行命令:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. 成功! 您現在應已連線至您的 VM。 如果您無法連線,請參閱疑難排解 SSH 連線

下一步

了解如何將檔案傳送至現有的 VM,請參閱使用 SCP 將檔案移至和移出 VM