---
title: 禁止使用root用户远程登录Linux系统
description: "“/etc/ssh/sshd_config”配置文件中的“PermitRootLogin”参数用于控制是否允许root用户通过SSH登录系统。为提升安全性，建议将该参数设置为“no”，禁止root用户直接登录。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/cVMcont/kunpengtee_zjsj_openclaw_032.html
sourcePath: /source/zh/kunpengcctrustzone/tee/cVMcont/kunpengtee_zjsj_openclaw_032.html
indexId: 3f7337989b9f35ba9a3e9642b8105bee814d49d3a8c91befa901f796f99706f875
---
# 禁止使用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服务。

  a. 打开配置文件。

```
vim /etc/ssh/sshd_config
```


  b. 按“i”进入编辑模式，将“PermitRootLogin”参数修改为“no”。

```
PermitRootLogin no
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
  d. 重启sshd服务。

```
systemctl restart sshd
```
