2026-06-03 00:10:06
在Linux中禁止root远程登录可通过修改SSH配置实现,具体步骤如下:
修改SSH配置文件SSH服务的主配置文件为/etc/ssh/sshd_config,需使用文本编辑器(如vi或nano)以管理员权限打开:
sudo vi /etc/ssh/sshd_config找到PermitRootLogin参数行,将其值改为no。若该行被注释(行首有#),需先去掉注释符号再修改。例如:
PermitRootLogin no保存文件并退出编辑器(在vi中按Esc后输入:wq保存退出)。
重启SSH服务修改配置后必须重启SSH服务使更改生效。根据系统发行版选择以下命令:
现代系统(使用systemd):sudo systemctl restart sshd
旧版系统(使用SysVinit):sudo service ssh restart
重启后可通过以下命令确认服务状态:
sudo systemctl status sshd若显示active (running)且无报错,说明服务已正常重启。
验证设置是否生效
尝试SSH登录测试:从另一台机器使用root账户通过SSH登录目标系统,应收到类似Permission denied (publickey,password)的拒绝信息。
检查日志文件:根据系统类型查看日志确认错误记录:
Ubuntu/Debian:sudo tail /var/log/auth.log
CentOS/RHEL:sudo tail /var/log/secure
日志中若出现Failed password for root或Denied root等记录,说明配置已生效。注意事项
原理说明SSH协议默认允许root用户远程登录,但直接暴露root账户会显著增加被攻击的风险。通过将PermitRootLogin设为no,SSH服务会拒绝所有以root身份发起的登录请求,迫使攻击者先破解普通用户账户,再尝试提权,大幅提高入侵难度。此操作是Linux系统安全加固的基础措施之一,尤其适用于生产环境服务器。