CentOS系统作为广泛使用的Linux发行版,其root用户的远程访问设置是系统管理中的重要环节,正确配置root远程访问不仅能提升管理效率,还能有效保障系统安全,本文将详细介绍CentOS系统中root用户远程访问的配置方法、安全注意事项及相关最佳实践。

禁用直接root登录的安全考量
在开始配置之前,首先需要理解为什么直接使用root用户进行远程登录存在安全风险,root用户拥有系统的最高权限,一旦账号泄露或被暴力破解,攻击者即可完全控制系统,最佳实践是禁用直接root登录,转而使用普通用户账号登录后再通过sudo提权,如果确实需要root权限进行操作,可以通过su或sudo命令临时获取,避免长期以root身份运行。
创建普通管理员用户
首先需要创建一个具有sudo权限的普通用户,以root身份登录系统后,使用以下命令创建新用户(以admin为例):
useradd admin passwd admin
将新用户添加到wheel组,该组默认具有sudo权限:
usermod -aG wheel admin
完成设置后,即可使用admin用户进行远程登录,需要root权限时通过sudo命令执行。
配置SSH服务允许root登录
如果确实需要允许root用户直接远程登录,可以修改SSH配置文件,编辑/etc/ssh/sshd_config文件:
vi /etc/ssh/sshd_config
找到以下两行并确保其配置正确:
PermitRootLogin yes
PasswordAuthentication yes PermitRootLogin控制是否允许root登录,PasswordAuthentication控制是否允许密码认证,修改完成后保存文件并重启SSH服务:
systemctl restart sshd
使用SSH密钥认证提升安全性
为了进一步提升安全性,建议使用SSH密钥认证代替密码认证,首先在客户端生成密钥对:

ssh-keygen -t rsa -b 4096
将公钥复制到服务器的~/.ssh/authorized_keys文件中:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器IP
然后修改SSH配置文件,禁用密码认证:
PasswordAuthentication no 重启SSH服务后,只有持有私钥的用户才能登录,大幅提升安全性。
配置防火墙规则
确保防火墙允许SSH流量,CentOS 7/8系统使用firewalld,可通过以下命令配置:
firewall-cmd --permanent --add-service=ssh firewall-cmd --reload
如果使用iptables,则添加规则:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT service iptables save
定期更新系统保持安全
定期更新系统是维护安全的重要措施,使用以下命令更新所有软件包:
yum update -y
设置自动更新任务或定期手动检查,确保系统始终安装最新的安全补丁。
监控登录日志
启用日志监控以便及时发现异常登录,查看SSH登录日志:

tail -f /var/log/secure
可使用fail2ban等工具自动封禁可疑IP地址,防止暴力破解攻击。
使用SELinux增强系统安全
确保SELinux处于启用状态(默认已启用),可通过以下命令检查:
sestatus
如需调整策略,使用semanage命令,避免直接禁用SELinux。
相关FAQs
Q1:如何确认SSH配置是否生效?
A1:修改SSH配置后,重启服务(systemctl restart sshd),然后使用新配置尝试登录,也可通过检查sshd进程的参数确认,如ps aux | grep sshd查看当前配置,使用sshd -t可以测试配置文件语法是否正确。
Q2:忘记root密码如何重置?
A2:可通过单用户模式重置密码,重启系统时在GRUB引导界面按’e’键,编辑内核参数,将ro改为rw init=/sysroot/bin/sh,然后按Ctrl+X启动,进入后执行chroot /sysroot,使用passwd命令重置密码,最后执行touch /.autorelabel确保文件系统权限正确,重启系统即可。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复