
Linux系统默认允许root用户通过SSH远程登录,这虽然方便管理,但存在严重安全风险。攻击者一旦爆破或窃取root密码,即可获得最高权限,直接控制整个服务器。因此,禁止root远程登录是加固系统最基础、最关键的一步。
修改SSH配置禁用root登录
核心操作是编辑SSH服务主配置文件/etc/ssh/sshd_config,调整PermitRootLogin参数:
- 将PermitRootLogin yes改为PermitRootLogin no(彻底禁止)
- 或设为PermitRootLogin prohibit-password(仅允许密钥登录,禁用密码登录)
- 修改后必须执行sudo systemctl restart sshd(或sshd,取决于系统)重载服务
- 操作前建议先用普通用户建立好带sudo权限的账户,并验证其能正常提权,避免锁死自己
创建并配置普通管理用户
禁用root后,需用普通用户替代完成日常运维:
- 运行sudo adduser admin新建用户(如admin),按提示设置密码
- 执行sudo usermod -aG sudo admin(Debian/Ubuntu)或sudo usermod -aG wheel admin(CentOS/RHEL)赋予sudo权限
- 切换到该用户测试:su - admin → sudo whoami应返回root
- 后续所有远程登录均使用该用户,再用sudo执行需要特权的操作
推荐搭配密钥登录提升防护等级
仅禁用root还不够,配合SSH密钥认证可大幅降低暴力破解风险:
- 本地生成密钥对:ssh-keygen -t ed25519(推荐ed25519算法)
- 上传公钥到服务器:ssh-copy-id admin@your-server-ip
- 在sshd_config中启用密钥认证:PubkeyAuthentication yes
- 进一步增强安全:设PasswordAuthentication no关闭密码登录(务必确认密钥已生效后再重启sshd)
验证与应急准备
配置完成后必须验证有效性,同时保留退路:
- 新开终端窗口,用普通用户尝试SSH登录:ssh admin@your-server-ip
- 登录后执行sudo -i确认可切换到root环境
- 检查sudo journalctl -u sshd --since "1 hour ago"有无拒绝root登录的日志
- 确保服务器控制台(如云平台VNC、物理终端)可访问,防止SSH配置失误导致失联
以上就是Linux禁止root远程登录_提升系统安全性技巧【教学】的详细内容,更多请关注php中文网其它相关文章!