Linux 禁止 root 远程登录配置

6次阅读

linux禁止root远程登录需修改/etc/ssh/sshd_config中permitrootlogin为no并重启sshd;确保普通用户(如admin)存在且属sudo/wheel组,可ssh登录并sudo提权;可选加强密钥认证、allowusers限制及端口变更;务必验证登录有效性并保留本地应急访问。

Linux 禁止 root 远程登录配置

Linux 禁止 root 远程登录是提升系统安全性的基础操作,核心在于修改 SSH 服务配置,确保 root 用户无法通过 SSH 直接登录,同时保留普通用户登录和提权能力。

修改 SSH 配置文件禁止 root 登录

SSH 服务的主配置文件为 /etc/ssh/sshd_config。需将其中控制 root 登录的参数设为 no

  • 找到或添加 PermitRootLogin 行,改为:
    PermitRootLogin no
  • 如该行被注释(以 # 开头),需先取消注释再修改
  • 保存文件后必须重启 SSH 服务生效:
    sudo systemctl restart sshdubuntu/debian)或
    sudo systemctl restart sshdcentos/RHEL 7+)

确认普通用户可正常登录并具备 sudo 权限

禁用 root 登录后,必须确保至少一个普通用户能登录并执行管理任务:

  • 创建普通用户(如 admin):
    sudo adduser admin
  • 将其加入 sudo 组(Ubuntu/Debian)或 wheel 组(CentOS/RHEL):
    sudo usermod -aG sudo admin
    sudo usermod -aG wheel admin
  • 测试用该用户 SSH 登录,并运行 sudo whoami 验证提权是否正常

可选:进一步限制登录方式增强安全性

在禁止 root 登录基础上,还可叠加以下措施:

  • 关闭密码认证,仅允许密钥登录:
    设置 PasswordAuthentication no,并确保用户已配置好 SSH 公钥
  • 限制可登录用户范围:
    添加 AllowUsers admin deploy(允许多个用户,空格分隔)
  • 更改默认 SSH 端口(非必需,但可减少自动化扫描):
    修改 Port 22 为其他端口号(如 Port 2222),注意同步更新防火墙规则

验证与排错要点

配置完成后务必验证,避免锁死系统:

  • 新开终端窗口,用普通用户 SSH 登录,再尝试 ssh root@localhost 或远程地址,应提示“Permission denied”
  • 检查 SSH 服务状态:sudo systemctl status sshd,确认无报错且处于 active 状态
  • 查看日志排查问题:sudo journalctl -u sshd -n 50 –no-pager
  • 若误操作导致无法登录,请通过本地控制台或云平台 VNC 进入系统修正配置
text=ZqhQzanResources