为什么我无法连接到从自定义 AMI 启动的 Amazon EC2 Windows 实例?

上次更新日期:2022 年 5 月 23 日

我收到错误提示,“密码尚不可用。在连接到新启动的 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例时,请在启动实例之后等待至少 4 分钟,然后再尝试检索自动生成的密码”。我已经等待 4 分钟以上,但仍然无法连接。

简短描述

从公有 Amazon 机器映像(AMI)启动的 EC2 Windows 实例的默认管理员账户密码由以下服务之一自动生成:

  • EC2Launch 服务 – Windows Server 2016 及更高版本
  • EC2Config 服务 – Windows Server 2012 R2 及更低版本

最佳实践是将管理员密码从默认值更改为您自己的密码。

从自定义 AMI 启动的实例采用源实例的管理员密码。如果在用于创建 AMI 的源实例中更改了管理员账户的默认密码,则新实例会采用相同的密码。除非您将 EC2Launch 或 EC2Config 配置为在下一次实例启动时生成新密码,否则无法使用密钥对文件来解密密码。

解决方法

有关在密码丢失或过期的实例上重置管理员密码的信息,请参阅如何在 EC2 Windows 实例上重置管理员密码?

重置密码让您能够恢复对新实例的访问权限。但是,当您从该自定义 AMI 启动任何其他实例时,会收到相同的错误。为避免出现这一问题,请将 EC2Launch 或 EC2Config 中的初始化任务配置为启用自动生成的密码。

重要提示:

此过程需要停止和启动实例。但应注意以下几点:

  • 如果您的实例受实例存储支持或具有包含数据的实例存储卷,则在实例停止时数据将丢失。有关更多信息,请参阅确定实例的根设备类型
  • 如果您的实例是 Amazon EC2 Auto Scaling 组的一部分,则停止实例可能会终止实例。使用 Amazon EMR、AWS CloudFormation、和 AWS Elastic Beanstalk 启动的实例可能是 AWS Auto Scaling 组的一部分。在这种情况下,是否会发生实例终止取决于您的自动扩缩组的实例缩减保护设置。如果您的实例是自动扩缩组的一部分,请在开始执行解决步骤之前,暂时从 Auto Scaling 组中删除它
  • 停止和启动实例会更改实例的公共 IP 地址。将外部流量路由到您的实例时,最佳做法是使用 Elastic IP 地址,而不是公有 IP 地址。

有关更多信息,请参阅概览:停止和启动实例

  1. 打开 Amazon EC2 控制台,然后使用远程桌面协议 (RDP) 连接到原始 Windows EC2 实例。
  2. 在 Windows 开始菜单中,执行以下操作:
    对于 Windows Server 2008 至 Windows Server 2012 R2,打开 EC2ConfigService Settings (EC2ConfigService 设置),然后选择 Image (映像) 选项卡。
    对于 Windows Server 2016 或更高版本,打开 EC2 Launch Settings (EC2 启动设置)
  3. 对于Administrator Password(管理员密码),选择Random(随机)。
  4. 选择 Shutdown without Sysprep (不使用 Sysprep 关闭)*。
  5. 选择 Yes (是)
  6. 打开 Amazon EC2 控制台,然后选择 Instances(实例)。
  7. 等到实例状态更改为 Stopped (停止),然后选择您的实例。
  8. 选择 Actions (操作)Image (映像)Create Image (创建映像)
    对于 Image name (映像名称),输入一个名称。
    (可选)对于 Image description (映像描述),输入描述。
  9. 选择创建映像

从这个新 AMI 启动的所有 EC2 实例都将使用密钥对来解密密码。

注意:“使用 Sysprep 关闭”可以移除实例安全标识符 (SID)、计算机名称和驱动程序等唯一信息,从而将您的 AMI 标准化。这样让您能够启动实例的多个副本。有关更多信息,请参阅如何使用 Sysprep 创建和安装自定义可重用 Amazon EC2 中的 Windows AMI?


这篇文章对您有帮助吗?


您是否需要账单或技术支持?