AMI实例忘记设置SSH密码登录,如何解决?

0

我用root设置了可以用ssh密码登录,制作了AMI然后创建新的实例,新的实例是不支持ssh密码登录的,需要在root重新改下。请问有什么办法可以让AMI不用重新设置ssh密码登录?

profile picture
专家
已提问 1 个月前28 查看次数
2 回答
0

首先我们不建议客户用密码登录,不是最佳实践,然后这个问题靠user data解决,比如这样https://github.com/Cloud-Yeti/aws-ec2-course/blob/master/labs/lab07-ec2-userdata-ssh-with-password.MD

profile picture
专家
已回答 1 个月前
0

您好,

这个问题是因为新建实例时,操作系统中的 cloud-init 套件会依照 cloud.cfg 的配置进行初始化,因此出现新实例与旧实例的配置不同的状态。所以如果您想要从 AMI 启动实例不会覆盖 sshd_config 的配置,您会需要在创建 AMI 前就先改好 cloud.cfg 的配置,然后才创建 AMI。

/etc/cloud/cloud.cfg 有两种改法提供给您参考:

  1. ssh_pwauth 默认参数是 0(false), 这会让操作系统 launch 时把 /etc/sshd/sshd_conf 中的 "PasswordAuthentication" 设定成 no。您可以改成1,这样实例启动就会把 "PasswordAuthentication" 改成 yes。如下:

ssh_pwauth: 1

  1. 直接把这个参数注解掉,这样的话实例 launch 的过程中就不会去修改 /etc/sshd/sshd_conf 中的 "PasswordAuthentication" 变项,原来的配置是什幺就是什幺。 如下:

ssh_pwauth: 0

您也可以透过以下连结进一步了解 cloud-init

[+] Amazon Linux - cloud-init - https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#amazon-linux-cloud-init

最后基于安全性考量, 不建议您开放使用root作为预设登入帐号,

root作为超级使用者,平常应避免使用。

AWS
Harry H
已回答 1 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则