开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

禁止使用root用户远程登录Linux系统

“/etc/ssh/sshd_config”配置文件中的“PermitRootLogin”参数用于控制是否允许root用户通过SSH登录系统。为提升安全性,建议将该参数设置为“no”,禁止root用户直接登录。

系统管理员需先使用个人账户进行SSH登录,然后通过sudo或su提升权限到root。这样有助于在发生安全事件时,提供清晰的审计线索。在修改此配置前,应确保系统中已存在其他具有系统管理员权限的用户账号,否则在配置生效后,将可能导致无法进行SSH远程管理。

配置生效后,root用户不能通过SSH远程登录。

操作步骤

  1. 检查PermitRootLogin配置是否正确(需同时满足如下两个命令行的检查)。
    • 命令一
      sshd -T -C user=root -C host="$(hostname)" -C addr="$(grep $(hostname) /etc/hosts | awk '{print $1}')" | grep permitrootlogin

      如下为示例,表示禁止root用户直接登录。

      permitrootlogin no
    • 命令二
      grep -Ei '^\s*PermitRootLogin\s+yes' /etc/ssh/sshd_config

      如下为示例,表示不存在“PermitRootLogin yes”的配置。

      Nothing is returned
  2. 若不能同时满足以上检查,请修改“/etc/ssh/sshd_config”文件,并重启sshd服务。
    1. 打开配置文件。
      vim /etc/ssh/sshd_config
    2. 按“i”进入编辑模式,将“PermitRootLogin”参数修改为“no”
      PermitRootLogin no
    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
    4. 重启sshd服务。
      systemctl restart sshd