重新启动后无法访问第 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 门户重置密码:

  1. 转到 VM。
  2. 在 VM 边栏选项卡中,滚动到 “帮助”。
  3. 选择 “密码重置”,然后选择“重置密码”,其中包含无法访问 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 反馈社区