連線至 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 是否開啟:
在 VM 的頁面上,從左側功能表中選取 [網路]。
在網路頁面上,檢查是否有規則允許您所用電腦 IP 位址連接埠 22 上的 TCP,與 VM 連線。 如果有規則,您可以移至下一節。
如果沒有規則,請選取 [新增輸入連接埠規則] 來新增規則。
針對 [服務],從下拉式清單中選取 [SSH]。
視需要編輯 [優先順序] 和 [來源]
在 [名稱]中,輸入 SSH。
完成後,選取 [新增]。
您現在應在輸入連接埠規則的資料表中具有 SSH 規則。
您的 VM 必須有公用 IP 位址。 若要檢查您的 VM 是否有公用 IP 位址 ,請從左側功能表中選取 [概觀],然後查看 [網路] 區段。 如果您在 [公用 IP 位址] 旁看到 IP 位址,則表示您的 VM 具有公用 IP
如果您的 VM 沒有公用 IP 位址,將如下所示:
若要深入瞭解如何將公用 IP 位址新增至現有的 VM,請參閱將公用 IP 位址與虛擬機器建立關聯
確認您的 VM 正在執行。 在 [概觀] 索引標籤的 [基本資訊] 區段中,確認 VM 的狀態為 [正在執行]。 若要啟動 VM,請選取頁面頂端的 [啟動]。
連線時若遇到問題,也可以使用入口網站:
- 前往 Azure 入口網站以連線至 VM。 搜尋並選取 [虛擬機器]。
- 然後從清單中選取虛擬機器。
- 從左側功能表中選取 [連線]。
- 請選取適合您慣用連線方式的選項。 入口網站將帶您瞭解連線的必要條件。
連線至 VM
符合上述必要條件之後,您就可以連線至您的 VM。 開啟您選擇的 SSH 用戶端。 SSH 用戶端命令通常包含在 Linux、macOS 和 Windows 中。 如果使用 Windows 7 或更舊版本(預設不包含 Win32 OpenSSH),不妨考慮安裝 WSL 或從瀏覽器使用 Azure Cloud Shell。
注意
下列範例假設 SSH 金鑰採用 key.pem 格式。 如果您使用 CLI 或 Azure PowerShell 來下載密鑰,這些密鑰可能採用id_rsa或ED25519格式。
具有新金鑰組的 SSH
請確定您的公開金鑰和私密金鑰皆位於正確的目錄中。 該目錄通常是
~/.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
請確認您有私密金鑰的唯讀存取權可以執行
chmod 400 ~/.ssh/myKey.pem
使用下列語法執行 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
驗證傳回的指紋。
如果您從未與這個 VM 連線,系統會要求您驗證主機指紋。 誰都想接受系統顯示的指紋,但這會讓您面臨潛在的中間人攻擊。 您應一律驗證主機指紋。 您只需要在第一次從用戶端連線時執行此動作。 若要透過入口網站取得主機指紋,請使用「執行命令」功能來執行命令:
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
成功! 您現在應已連線至您的 VM。 如果您無法連線,請參閱疑難排解 SSH 連線。
具有現有公開金鑰的 SSH
在 SSH 用戶端中執行下列命令。 在此範例中,20.51.230.13 是您 VM 的公用 IP 位址,而 azureuser 是您建立 VM 時建立的使用者名稱。
ssh azureuser@20.51.230.13
驗證傳回的指紋。
如果系統要求您驗證主機指紋之前,您目前的 SSH 用戶端從未與所需的 VM 連線。 雖然預設選項是接受系統顯示的指紋,但您可能會遭受「中間人攻擊」。 您要驗證主機的指紋,這只需要在用戶端第一次連線時完成。 若要透過入口網站取得主機指紋,請使用「執行命令」功能來執行命令:
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
成功! 您現在應已連線至您的 VM。 若不能連線,請參閱我們的疑難排解指南。
密碼驗證
警告
這種型別的驗證方法不如 SSH 金鑰組安全,因此不建議使用。
在 SSH 用戶端中執行下列命令。 在此範例中,20.51.230.13 是您 VM 的公用 IP 位址,而 azureuser 是您建立 VM 時建立的使用者名稱。
ssh azureuser@20.51.230.13
如果您忘記密碼或使用者名稱,請參閱重設 Azure VM 的存取權
驗證傳回的指紋。
如果系統要求您驗證主機指紋之前,您目前的 SSH 用戶端從未與所需的 VM 連線。 雖然預設選項是接受系統顯示的指紋,但您可能會遭受「中間人攻擊」。 您要驗證主機的指紋,這只需要在用戶端第一次連線時完成。 若要透過入口網站取得主機指紋,請使用「執行命令」功能來執行命令:
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
成功! 您現在應已連線至您的 VM。 如果您無法連線,請參閱疑難排解 SSH 連線。
下一步
了解如何將檔案傳送至現有的 VM,請參閱使用 SCP 將檔案移至和移出 VM。