问题描述
在AWS中使用Terraform创建了多个实例,并通过脚本创建了一个名为”user1″的用户。然而,在登录时遇到了问题。当使用”user1@XXXXXXX”登录时,出现以下提示信息:Please login as the user “ec2-user” rather than the user “root”。用户想要解决这个问题,不希望手动去删除这行提示信息。
解决方案
以下提供了两种解决方案,你可以根据自己的实际情况选择其中之一。请注意,如果遇到版本差异或有风险的操作,请在操作之前做好备份,并按照Markdown的引用格式进行提示。
方案1:使用Ansible进行用户配置
在AWS中,使用Terraform进行基础设施的设置是非常棒的选择。但对于实际配置,可以考虑使用Ansible来配置额外的用户。
在Terraform运行并设置好所有资源后(例如EC2实例、安全组等),使用Ansible进行进一步的用户配置。
建议保留AWS默认用户(如ec2-user、ubuntu),如果使用SSH密钥进行登录,将允许SSH访问的所有用户的公钥添加到“authorized_keys”文件中。
编辑sudoers文件以授权用户执行sudo命令的权限。可以创建所需的用户组,并分配合适的权限。
将用户分组,并在“sshd_config”中允许这些用户组通过SSH连接。需要将每个用户组成员的公钥添加到相应的“authorized_keys”文件中。
重新启动SSH服务,让配置生效。
这种方法允许你更好地组织用户,并在SSH连接时有更好的控制。请确保在进行任何重要操作之前备份重要数据和配置文件。
方案2:复制正确的authorized_keys文件
另一种方法是复制正确的authorized_keys
文件,以解决登录提示问题。
首先,确定你希望的是以
ec2-user
用户身份登录,还是使用你自己创建的user1
用户身份登录。从
/home/ec2-user/.ssh/authorized_keys
复制authorized_keys
文件,然后将其粘贴到/home/user1/.ssh/
目录下,替换现有的authorized_keys
文件。使用以下命令完成复制:
bash
cp /home/ec2-user/.ssh/authorized_keys /home/user1/.ssh/authorized_keys
- 请注意,复制文件后,可能会遇到文件权限问题。确保
/home/user1/.ssh/authorized_keys
文件具有正确的权限,以便能够成功进行SSH登录。
这种方法通过直接复制正确的authorized_keys
文件,避免了手动编辑文件,从而解决了登录提示问题。然而,仍然需要注意文件权限问题以确保顺利登录。
请根据自己的实际情况选择适合你的解决方案,并确保在操作之前做好备份和测试。如果需要,你还可以进一步根据实际情况进行适当的调整和配置。