重新启动后无法访问第 2 代 Linux VM
适用于:✔️ Linux VM
原始 KB 数: 4541599
总结
Azure 允许利用第 2 代 (Gen2) VM Linux 市场映像,这些映像具有多个优势。 这些 Gen2 市场映像将包含负责完成 VM 设置的预配代理(Linux 代理或 cloud-init),例如设置主机名、用户名或密码/ssh 密钥。
我们最近发现,在有限的方案中,在重新启动包含 cloud-init 预配代理的 Gen2 VM 时,可能无法使用创建 VM 时指定的用户帐户和密码访问 VM。
详细信息
这只会影响使用 cloud-init 19.3 或更低版本预配的 Gen2 映像(自定义或Azure 市场),因为问题已在 cloud-init 19.4 中解决。
Azure 市场已提供具有 cloud-init 的 Ubuntu Server Gen 2 映像,下面的映像版本包括 cloud-init 19.4。
16.04 - Canonical:UbuntuServer:16_04-lts-gen2:16.04.202001290
18.04 - Canonical:UbuntuServer:18_04-lts-gen2:18.04.202001291 若要检查 cloud-init 的版本是否位于映像中,请运行以下脚本:
cloud-init -v
缓解措施
如果无法使用创建 VM 的用户连接到 VM,则需要使用 Azure VM 访问扩展或Azure 门户重置密码:
- 转到 VM。
- 在 VM 边栏选项卡中,滚动到 “帮助”。
- 选择 “密码重置”,然后选择“重置密码”,其中包含无法访问 VM 的用户名。
预防
你可以采取先发制人的措施,以避免被锁定。如果发行版在其存储库中已发布 cloud-init 19.4,则可以使用以下 apt 命令升级到该存储库。
sudo apt-get upgrade cloud-init
常见问题解答
问: 我创建了具有用户和 SSH 密钥的 VM,这是否适用于我?
答: 不是。 仅当使用密码身份验证时,才会发生这种情况。
问: 这是否只会影响 Ubuntu Server 市场映像?
答: 默认使用 cloud-init 预配规范 Ubuntu Server 市场映像。 但是,可能还有其他使用 cloud-init 进行预配的Azure 市场产品/服务。
问: 我使用的是第 1 代映像,这种情况是否可以发生?
答: 否,这只会影响第 2 代图像。
问: 每次重新启动时,这都可能发生吗?
答: 不是。 每次重新启动时都不会发生这种情况,它将发生一次。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。