Microsoft Entra ID (Azure AD) 與 Linux 虛擬機器 (VM) 的整合功能強大,可以增強安全性並簡化身分管理。啟用 Azure AD 登入後,您可以簡化存取控制,不再需要管理本機認證。在本指南中,我們將逐步介紹如何在 Azure 中為 Linux VM 設定 Microsoft Entra ID 登入、指派角色並安全連線。
目錄
為什麼要為 Linux VM 啟用 Entra ID 登入?
Azure AD 登入為在 Azure 中管理 Linux VM 帶來了諸多好處:
- 集中式身分管理:透過 Azure AD 管理使用者存取權限,而不依賴本機帳戶。
- 強化的安全性:利用現代身分驗證方法,例如多重要素驗證 (MFA)。
- 角色型存取控制 (RBAC):為使用者和群組指派精細的權限。
- 簡化的作業:降低管理 SSH 金鑰和密碼的複雜性。
步驟 1:建立已啟用 Azure AD 登入的 Linux 虛擬機器
首先,您需要在 Azure 中建立一個已啟用 Azure AD 登入的新 Linux VM。
- 前往 Azure Portal:
- 登入 Azure Portal。
- 前往 虛擬機器 區段,然後點選 建立 > 虛擬機器。
- 設定 VM 基本設定:
- 填寫必要詳細資訊,例如 訂閱、資源群組、VM 名稱 和 區域。
- 選擇合適的 映像(例如,Ubuntu 24.04 LTS)。
- 啟用 Azure AD 登入:
- 在管理索引標籤下,找到識別身分區段。
- 將系統指派的受控識別身分設為啟用。
- 啟用 使用 Azure AD 登入,方法是切換該選項。
- 檢閱並建立:
- 檢查設定,然後點選 建立 以部署 VM。

步驟 2:指派用於 VM 存取的 Azure AD 角色
要讓 Azure AD 使用者能夠登入 VM,您需要指派適當的角色。
- 存取控制 (IAM):
- 在 Azure Portal 中前往您的 VM。
- 前往存取控制 (IAM)索引標籤。
- 點擊 新增角色指派。

- 選取角色:
- 選擇角色 虛擬機器管理員登入 或 虛擬機器使用者登入,具體取決於所需的存取層級。

- 指派成員:
- 在成員下,點選選取成員。
- 搜尋要為其指派角色的 Azure AD 使用者或群組,然後將其選取。
- 儲存變更:
- 點擊 檢閱+指派 以儲存角色指派。
如果您沒有指派所需的角色,將會出現以下錯誤:
john [ ~ ]$ az ssh vm -n AzureADLinuxVM -g testrg
OpenSSH_9.8p1, OpenSSL 3.3.3 11 Feb 2025
The authenticity of host '4.xx.x.x (4.xx.x.x)' can't be established.
ED25519 key fingerprint is SHA256:X+idYWkBunsXXxXXxXXxXX5eU6nzLvC7dPXXxxX+Xktg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '4.xx.x.x' (ED25519) to the list of known hosts.
[email protected]@4.xx.x.x: Permission denied (publickey).

步驟 3:使用 Azure AD 認證連線到 Linux VM
VM 設定完成且角色指派完成後,您可以使用 Azure AD 認證連線到它。Azure 提供了多種連線方式,包括 Azure Cloud Shell 以及 PuTTY。
選項 1:使用 Azure Cloud Shell
- 從 Azure Portal 開啟 Azure Cloud Shell。
- 使用以下命令連線到您的 VM:
az ssh vm -n <Azure_VM_Name> -g <Resource_Group_Name>
取代:<Azure_VM_Name>為您的虛擬機器名稱。<Resource_Group_Name>為 VM 所在的資源群組名稱。

這種方法無需手動管理 SSH 金鑰,因為身分驗證由 Azure 處理。
選項 2:使用 PuTTY (Windows)
- 產生設定檔。
John [ ~ ]$ ls
clouddrive Microsoft
John [ ~ ]$ az ssh config --file config -n AzureADLinuxVM -g testrg
Generated SSH certificate /home/john/az_ssh_config/testrg-AzureADLinuxVM/id_rsa.pub-aadcert.pub is valid until 2025-05-27 02:34:18 PM in local time.
/home/John/az_ssh_config/testrg-AzureADLinuxVM contains sensitive information (id_rsa, id_rsa.pub, id_rsa.pub-aadcert.pub). Please delete it once you no longer need this config file.
John [ ~ ]$ ls
az_ssh_config clouddrive config Microsoft
- 開啟設定檔,您可以找到 SSH 私鑰的位置。格式如下:
Host testrg-AzureADLinuxVM
User [email protected]
HostName 4.XXX.XXX.XX
CertificateFile "/home/john/az_ssh_config/testrg-AzureADLinuxVM/id_rsa.pub-aadcert.pub"
IdentityFile "/home/john/az_ssh_config/testrg-AzureADLinuxVM/id_rsa"
Host 4.XXX.XXX.XX
User [email protected]
CertificateFile "/home/john/az_ssh_config/testrg-AzureADLinuxVM/id_rsa.pub-aadcert.pub"
IdentityFile "/home/john/az_ssh_config/testrg-AzureADLinuxVM/id_rsa"
- 下載並安裝 PuTTY:
- 從 官方網站下載 PuTTY。
- 將其安裝到本機電腦上。
- 下載私鑰 id_rsa 和憑證 id_rsa.pub-aadcert.pub。
- 將 SSH 金鑰 (/home/john/az_ssh_config/testrg-AzureADLinuxVM/id_rsa) 轉換為 PuTTY 格式:
- 使用 PuTTYgen 將您的私人 SSH 金鑰轉換為
.ppk格式。 - 載入金鑰,將其儲存為
.ppk格式,然後繼續。
- 使用 PuTTYgen 將您的私人 SSH 金鑰轉換為

- 設定 PuTTY:
- 開啟 PuTTY 並輸入公用 IP 位址(您的 VM 的)。
- 在 Connection > SSH > Auth下,載入
.ppk檔案。 - 點擊 開啟 以發起連線。

步驟 4:重設密碼或管理存取權(選用)
如果您需要重設使用者密碼或管理存取權:
- 重設密碼:
- 在 Azure Portal 中前往該 VM。
- 在 支援 + 疑難排解下,選取 重設密碼。
- 選擇 使用者名稱,然後重設密碼。
- 修改角色指派:
- 前往 存取控制 (IAM)。
- 視需要編輯或移除角色指派。
疑難排解提示
- SSH 連線失敗:確認 VM 的 網路安全性群組 (NSG) 允許連接埠 22 上的輸入 SSH 流量。
- 身分驗證錯誤:驗證使用者是否被指派了正確的 Azure AD 角色。
- 公用 IP 問題:確認 VM 擁有公用 IP 位址,或使用 Azure Bastion 設定私人連線。
結論
對於希望增強安全性並簡化存取管理的組織來說,在 Azure 中為 Linux VM 啟用 Azure AD 登入是一項改變遊戲規則的舉措。按照本指南中的步驟操作,您可以設定 Azure AD 登入、指派角色,並無縫連線到您的 VM。
如需更多雲端技術指南和最佳實務,請瀏覽我們的 部落格,隨時了解雲端運算的最新動態。