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。
如需更多云技术指南和最佳实践,请浏览我们的 博客,随时了解云计算的最新动态。