在 centos 中,默认情况下,root
账户可以通过 SSH 直接登录。为了提高系统安全性,建议关闭 root
账户的 SSH 访问权限,改为使用普通用户登录后再切换到 root
。
1. 关闭 root 账户 SSH 访问权限
操作步骤:
-
编辑 SSH 配置文件
/etc/ssh/sshd_config
:sudo vi /etc/ssh/sshd_config
-
找到以下行(默认可能是注释的):
#PermitRootLogin yes
-
修改为以下内容:
PermitRootLogin no
注意:如果找不到该行,可以直接在文件末尾添加:
PermitRootLogin no
-
保存并退出编辑器。
-
重启 SSH 服务使配置生效:
sudo systemctl restart sshd
-
验证配置是否生效:
- 尝试使用
root
账户通过 SSH 登录:
应该会提示“Permission denied”或类似错误。ssh root@your_server_ip
- 使用普通用户登录后,再切换到
root
:ssh username@your_server_ip sudo su -
- 尝试使用
2. 配置普通用户使用 sudo
权限
关闭 root
账户的 SSH 访问权限后,建议为普通用户配置 sudo
权限,以便在需要时执行管理员操作。
操作步骤:
-
将普通用户添加到
wheel
组(管理员组):sudo usermod -aG wheel username
-
验证用户是否已加入
wheel
组:id username
输出应包含
wheel
组。 -
测试
sudo
权限:- 切换到普通用户:
su - username
- 执行
sudo
命令:
如果配置正确,系统会提示输入用户密码,然后显示sudo ls /root
/root
目录内容。
- 切换到普通用户:
3. 其他注意事项
-
备份配置文件:在修改 SSH 配置之前,建议备份相关文件:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
-
确保普通用户可以切换到
root
:如果普通用户无法切换到root
,检查/etc/sudoers
文件是否包含以下行:%wheel ALL=(ALL) ALL
-
启用 SSH 密钥认证:为了进一步提高安全性,建议禁用密码登录,仅使用 SSH 密钥认证:
- 编辑
/etc/ssh/sshd_config
:sudo vi /etc/ssh/sshd_config
- 修改以下行:
PasswordAuthentication no
- 重启 SSH 服务:
sudo systemctl restart sshd
- 编辑
总结
通过关闭 root
账户的 SSH 访问权限,可以显著提升系统的安全性,减少被暴力破解的风险。建议结合 sudo
权限和 SSH 密钥认证,进一步增强系统的安全性。