近期我们收到了一客户反馈的问题:在AWS环境中,如何选择并配置CentOS 7官方免费版本,并启用密码登录方式?
作为开源社区维护的企业级Linux发行版,CentOS 7不仅性能出色,而且在AWS平台上也有官方提供的免费社区AMI版本。但默认情况下,CentOS 7的root账户是被锁定的,且仅允许密钥对登录,这给系统管理和应用部署带来了一定不便。
为了解决这一问题,我们建议客户在AWS控制台中启动CentOS 7实例时,通过配置用户数据脚本的方式,自动完成以下操作:
- 为root用户设置一个新的密码
- 修改sshd配置,允许root账户远程登录
- 修改sshd配置,启用密码认证登录方式
- 重启sshd服务使配置生效
具体的用户数据脚本内容如下:
#!/bin/bash
echo 'root:新密码' | sudo chpasswd
sed -i 's/^#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd
只需要将"新密码"替换为期望设置的root密码即可。通过这种方式,实例启动后,就可以使用root账户和设置的密码通过SSH客户端远程登录了。
也可以通过控制台操作,步骤如下:
操作步骤
1. 打开AWS管理控制台:https://ap-southeast-1.console.aws.amazon.com/ec2/home?region=ap-southeast-1#Home 在选择服务器地区后,点击"启动实例"(Launch Instances)按钮。
2. 在"Amazon Machine Image (AMI)"步骤中,选择“浏览其他 AMI(包含来自 AWS、Marketplace 和社区的AMI)”
3. 使用搜索栏搜索" CentOS 7 (x86_64) - with Updates HVM"。从搜索结果中选择适合您的需求的CentOS 7 AMI。确保选择的镜像是由CentOS官方或受信任的提供商提供的,且免费!
4. 展开"高级详细信息" 拉到最下方"用户数据"的地方复制以下shell脚本
#!/bin/bash # 安装 SSM Agent sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm # 启用 SSH 密码验证 sudo sed -i '/PasswordAuthentication/ s/^/#/g' /etc/ssh/sshd_config && sudo systemctl restart sshd # 设置 root 用户密码 # 其中"TWeDb4reZBKxapfqzffg"可改为自定义密码 echo "root:TWeDb4reZBKxapfqzffg" | sudo chpasswd
5.实例启动完成后,即可使用密码进行远程服务器访问了。