在 Linux 系统中,允许 root 用户 通过 SSH 登录是通过修改 SSH 配置文件 /etc/ssh/sshd_config 中的 PermitRootLogin 参数来实现的。默认情况下,出于安全考虑,很多 Linux 发行版会禁用 root 用户的 SSH 登录。因此,你可以按照以下步骤来允许 root 用户通过 SSH 登录:

1. 修改 sshd_config 配置文件

  1. 打开 SSH 配置文件
    你需要编辑 /etc/ssh/sshd_config 文件。可以使用任何文本编辑器来修改该文件,例如 vimnano 或 visudo vim /etc/ssh/sshd_config 或者如果你更喜欢 nano 编辑器:sudo nano /etc/ssh/sshd_config
  2. 查找 PermitRootLogin 参数
    在文件中查找 PermitRootLogin,它控制 root 用户是否能够通过 SSH 登录。如果没有找到该行,可以手动添加。# 查找 PermitRootLogin PermitRootLogin yes 这意味着允许 root 用户通过 SSH 使用密码或密钥登录。如果该行已经存在并且被设置为 no,你可以将其修改为 yes 来允许 root 登录。
    • 允许 root 用户通过 SSH 登录(使用密码或密钥):PermitRootLogin yes
    • 仅允许通过 SSH 密钥认证登录 root 用户(禁用密码登录):PermitRootLogin prohibit-password 这会要求 root 用户仅能使用 SSH 密钥对认证,而不能使用密码登录。
  3. 保存文件并退出编辑器
    • 如果使用 vim 编辑器,按 Esc,然后输入 :wq 保存并退出。
    • 如果使用 nano 编辑器,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出编辑器。

2. 重新启动 SSH 服务

修改完 sshd_config 文件后,需要重新启动 SSH 服务使改动生效。可以使用以下命令重启 SSH 服务:

sudo systemctl restart sshd

或者在某些 Linux 发行版中,可以使用 service 命令:

sudo service ssh restart

3. 使用 SSH 登录为 root 用户

现在,你应该能够使用 root 用户通过 SSH 登录了。如果你选择了 密码认证,可以使用以下命令从远程机器连接:

ssh root@your-server-ip

如果你选择了 SSH 密钥认证,确保你已经将正确的公钥添加到 /root/.ssh/authorized_keys 文件中,并使用密钥进行认证。

4. 安全考虑

虽然可以允许 root 用户通过 SSH 登录,但出于安全考虑,通常推荐禁止 root 直接登录,而是使用普通用户先登录,然后通过 sudo 或 su 切换到 root 权限。这样做可以减少暴力破解攻击的风险,因为攻击者必须首先破解普通用户的密码。

  • 更安全的做法
    • 禁用密码认证:PasswordAuthentication no
    • 禁止 root 登录:PermitRootLogin no
    • 使用普通用户登录并通过 sudo 提升权限。

5. 总结

要允许 root 用户通过 SSH 登录:

  1. 修改 /etc/ssh/sshd_config 文件,将 PermitRootLogin 设置为 yes 或 prohibit-password(推荐使用密钥认证)。
  2. 重新启动 SSH 服务以应用更改。
  3. 使用 SSH 命令从远程登录。

记住,允许 root 登录增加了安全风险,建议只在必要时才启用,并使用 强密码 或 SSH 密钥认证 来加强安全性。如果可能,建议禁用 root 登录,转而使用普通用户并通过 sudo 执行权限提升。