无法使用`ubuntu`用户登录由自动扩展组生成的EC2实例

48次阅读
没有评论

问题描述

在使用Ansible AWS模块创建AMI时,能够使用自己的用户和默认账户(ubuntu)通过SSH连接到现有的EC2实例。在AMI准备就绪后,用户创建了一个包含新AMI和使用该启动模板的自动扩展组。一旦自动扩展组中的实例启动,用户只能使用用户账户进行SSH连接,而不能使用默认账户。AMI创建过程中可能丢失了一些数据,但用户不确定。如果需要更多信息,用户愿意提供。谢谢!

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在AMI创建过程中,可能会导致默认用户密码被锁定,即在/etc/shadow文件中的密码后面添加了一个!符号。
您可以在启动模板的用户数据中添加passwd -u ubuntu来解锁默认用户,然后就可以正常使用了。
以下是解决方案的步骤:
1. 打开启动模板的用户数据配置。
2. 在用户数据中添加passwd -u ubuntu
3. 保存并更新启动模板。
下面是一个示例的启动模板用户数据配置:

user_data: |
  #!/bin/bash
  passwd -u ubuntu

在上面的示例中,我们使用passwd -u ubuntu命令来解锁默认用户。

方案2

如果方案1无效,您可以尝试手动创建一个使用相同镜像的新实例,看看是否出现相同的问题。
如果方案1无效,您可以尝试手动创建一个使用相同镜像的新实例,看看是否出现相同的问题。如果新实例也无法使用默认账户进行SSH连接,那么问题可能不是由AMI创建过程引起的,可能是其他原因导致的。
您可以按照以下步骤手动创建一个新实例:
1. 登录到AWS控制台。
2. 打开EC2服务页面。
3. 点击”实例”,然后点击”启动实例”按钮。
4. 选择与您之前使用的AMI相同的镜像。
5. 配置其他实例设置,如实例类型、安全组等。
6. 启动实例并尝试使用默认账户进行SSH连接。
如果新实例也无法使用默认账户进行SSH连接,那么可能是AMI本身的问题,您可以尝试重新创建AMI或使用其他AMI来解决问题。

正文完