引言
CentOS 是一款广泛使用的开源 Linux 发行版,它以其稳定性和可靠性而闻名。对于系统管理员来说,确保 Root 用户的登录安全至关重要。本文将向您展示如何使用一个简单的脚本来自动配置 CentOS 系统的 Root 用户登录,以实现安全且便捷的登录体验。
1. 脚本目标
- 限制 Root 用户的密码登录。
- 允许 Root 用户通过 SSH 公钥进行登录。
- 创建一个非 Root 管理员用户,用于日常操作。
2. 准备工作
确保您有 sudo 权限,以便运行以下命令。如果没有,请使用您的用户名登录或使用 su 命令切换到 Root 用户。
sudo su
3. 创建 SSH 公钥
如果还没有 SSH 公钥,请使用以下命令生成:
ssh-keygen -t rsa -b 4096
按照提示操作,您可以选择保存位置和密码。
4. 将公钥添加到 authorized_keys
将生成的公钥添加到 Root 用户的 ~/.ssh/authorized_keys 文件中。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
确保只有 Root 用户可以访问此文件。
5. 配置 SSH
编辑 SSH 配置文件以禁用密码登录:
sudo nano /etc/ssh/sshd_config
找到以下行并将其取消注释(如果已注释):
PasswordAuthentication no
然后保存并关闭文件。
6. 创建非 Root 管理员用户
使用以下命令创建一个新用户:
sudo useradd -m -d /home/username -s /bin/bash username
将 username 替换为您想要的用户名。
为该用户分配一个密码:
sudo passwd username
7. 脚本实现
以下是实现上述步骤的脚本示例:
#!/bin/bash
# 生成 SSH 公钥
ssh-keygen -t rsa -b 4096
# 将公钥添加到 authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 禁用密码登录
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
# 创建非 Root 用户
sudo useradd -m -d /home/username -s /bin/bash username
sudo passwd username
# 重启 SSH 服务
sudo systemctl restart sshd
将此脚本保存到一个文件中,例如 setup.sh,并赋予它执行权限:
chmod +x setup.sh
运行脚本:
./setup.sh
8. 测试登录
现在,您应该可以通过 SSH 使用公钥登录到 Root 用户。尝试以下命令:
ssh username@your_centos_ip
替换 username 和 your_centos_ip 为您的用户名和 CentOS 服务器的 IP 地址。
结论
通过以上步骤,您已经创建了一个安全且便捷的登录体验。使用 SSH 公钥登录比密码登录更安全,因为它不涉及明文密码传输。同时,创建一个非 Root 用户可以减少对系统安全的潜在威胁。希望这篇文章能帮助您在 CentOS 上配置 Root 用户登录。
