使用实例用户数据覆盖默认用户名 - CentOS 7 (x86_64) 更新 HVM

Override Default Username Using Instance User Data - CentOS 7 (x86_64) with Updates HVM

A​​WS 的新手和 Linux 的新手。我已经成功启动(并终止)了几个 CentOS 7 实例。花了一段时间才注意到主题 AMI 使用默认用户 "centos" 并且最初不允许以 "root" 身份登录,这导致多次 SSH 尝试失败。安装 nano 后,我可以更改 visudo 文件。然而,很多东西看起来仍然是root所有的,centos(或我创建的其他用户)无法访问,因此很难完成。我设置了 Apache、MySQL 和 PHP,并且由于 www 归 root 所有,因此很难获取站点内容。我试图更改我需要访问但遇到一些麻烦的目录的所有权。我的主要问题是:

A​​WS 指南说用户可以 "override this default username by using instance user data at time of instantiation?"

是什么意思

具体来说,我在网上没有看到很多关于更改 "user data" 的指导。我假设这意味着您可以在实例启动时更改实例的 "specs"。

有没有人有在设置实例时如何执行此操作的示例?我对了解如何设置具有类似 root 访问权限的用户特别感兴趣。或者,如何简单地删除此 AMI 上的 "centos" 用户并让初始登录从 root 进行。我认为我的部分问题是 visudo、sshd_config 和 authorized_keys.

编辑失败

我只想要一个拥有不受限制用户的 CentOS 7 实例。这主要是一项独立研究,其他用户无权访问。到目前为止,我在网上看到的指南并不完全适用于这个特定的 AMI。我相信我的无知是最大的障碍,但任何指点将不胜感激。

如果您将 public 密钥添加到 root 的 authorized_keys 上并用它创建一个 AMI,怎么样? 这样你就可以直接 ssh 到 root

这可能有点太晚了,但我找到了这个资源:

http://chrishewett.com/blog/setting-up-a-centos-7-0-webserver-on-ec2/

经过一些挖掘,很明显 'ssh'-ing 为 root 只是执行以下操作的问题:

sudo nano /root/.ssh/authorized_keys

来自 URL:

Here you will find a message telling you to login with user 'centos' rather than root, followed by the SSH key

我喜欢的编辑器是 vi,所以命令如下:

sudo vi /root/.ssh/authorized_keys

在文件中,您想删除 ssh-rsa 文本之前的所有内容,并保留其他所有内容。保存更改后,您可以像往常一样注销并使用 root ssh 进入您的实例(尽管那些更了解的人不鼓励这样做)。