如何在 Linux 中禁用 SSH Root 登录?

linuxoperating systemopen source

简介

在 Linux 系统中,SSH(安全外壳)是一种用于连接和管理远程服务器的常用协议。它允许用户从世界任何地方安全地访问和控制其服务器。SSH 对系统管理员和开发人员至关重要,因为它使他们能够执行各种任务,例如编辑配置文件、传输文件和管理远程服务。

但是,允许通过 SSH 进行 Root 登录会带来严重的安全风险,可能导致未经授权的访问和恶意攻击您的系统。通过禁用此功能,您可以显著降低 Linux 服务器被入侵的可能性。

本指南旨在提供有关如何在 Linux 中禁用通过 SSH 进行 Root 登录的分步说明。我们将探讨允许通过 SSH 进行 root 登录的相关风险,并演示如何采取必要措施来保护您的系统安全。

SSH 在 Linux 中的重要性

SSH 是一种安全的远程访问协议,允许用户通过不安全的网络(例如互联网)进行安全的远程连接。它在客户端/服务器通信通道之间提供加密,有效地防止黑客或其他第三方试图进行未经授权的访问或窃听流量。SSH 为系统管理员和开发人员提供了一种简单有效的方法,使他们能够从工作站或其他无法直接访问控制台的远程位置访问和管理远程服务器。

允许通过 SSH 进行 root 登录的相关安全风险

虽然允许通过 SSH 进行 root 登录看似一项便捷的功能,但由于其固有的安全控制措施缺乏,因此会带来重大的安全风险。成功通过 root 登录获取访问权限的黑客将完全控制服务器,这使得他们更容易执行恶意活动,例如安装恶意软件或创建后门而不被发现。

因此,如果启用 root 登录,任何旨在使用 SSH 获取提升权限的攻击都将更容易成功。禁用通过 SSH 的 root 登录可显著降低未经授权的访问和恶意攻击的风险。

了解 SSH root 登录

安全 Shell (SSH) 是一种支持不同系统之间安全通信的协议,允许用户建立并维护与 Linux 服务器的远程连接。SSH root 登录是指通过 SSH 以 root 用户身份登录的过程。

root 用户拥有完整的系统级访问权限,这意味着他们可以更改系统的任何部分。然而,这也意味着如果有人未经授权访问您的 root 帐户,他们将完全控制您的系统。

准备禁用 root 登录

为了继续通过 SSH 禁用 root 登录,务必正确准备和设置系统。在开始之前,最好检查系统的当前设置,并创建一个新的用户帐户作为 root 帐户的替代帐户。

检查当前设置以查看 root 登录是否已启用或禁用

您需要做的第一件事是检查系统当前是否启用或禁用了 root 登录。为此,请打开终端并输入以下命令:

sudo grep PermitRootLogin /etc/ssh/sshd_config

如果此命令的输出为"PermitRootLogin yes",则表示您的系统当前已启用 root 登录。如果输出为"PermitRootLogin no",则表示您已安全无虞。

创建具有 sudo 权限的新用户帐户作为使用 root 帐户的替代方案

除非绝对必要,否则出于安全风险的考虑,日常使用 root 帐户并非明智之举。更好的日常做法是创建另一个具有管理员权限的用户,但不使用"root"作为用户名。

这将提供额外的安全保障,以防有人通过其他方式获得未经授权的访问。要创建这样的帐户,请运行以下命令 -

sudo adduser <username>

这将创建一个默认具有常规权限的新用户,但尚无管理权限。下一步是将此用户添加到 sudoers 文件中,该文件定义了谁有权访问 sudo(超级用户)命令。要通过终端控制台授予此新用户的管理权限,请运行以下命令 -

sudo usermod -aG sudo <username>   

创建新用户后,请务必注销并使用新帐户重新登录。您可以使用此帐户执行日常操作以及需要 sudo 权限的管理任务。

禁用或删除已入侵的用户帐户总是比禁用或删除 root 帐户更容易。完成这些准备步骤后,我们就可以继续通过 SSH 禁用 root 登录了。

通过 SSH 禁用 root 登录 使用文本编辑器编辑文件

通过 SSH 禁用 root 登录的第一步是打开 sshd_config 文件。该文件通常位于 /etc/ssh/ 目录中。打开终端并输入以下命令:

sudo nano /etc/ssh/sshd_config

此命令将使用超级用户权限在名为"nano"的文本编辑器中打开 sshd_config 文件。请务必使用 sudo 执行此操作,因为您需要管理员权限才能编辑和保存更改。

将 PermitRootLogin 设置从"yes"更改为"no"

打开 sshd_config 文件后,查找名为 PermitRootLogin 的设置。默认情况下,此设置通常设置为"yes",表示允许通过 SSH 以 root 身份登录。您需要将此设置更改为"no"。

只需将此行更改为"yes"即可。

#PermitRootLogin yes

PermitRootLogin no

这将禁用通过 SSH 的 root 登录,并且仅允许具有 sudo 权限的其他用户访问。

保存并关闭文件

要保存更改,只需按下键盘上的 CTRL + O,然后按 ENTER(回车)键。要退出 nano 文本编辑器,请在键盘上按 CTRL + X。

重启 SSH 服务

编辑 sshd_config 后的最后一步是重启 ssh 服务,以便应用我们之前所做的更改。我们使用以下命令:

sudo systemctl restart sshd.service

测试所做的更改

完成在 Linux 中禁用 SSH root 登录的步骤后,必须验证更改是否成功。您可以通过尝试使用终端或 SSH 客户端以 root 用户身份通过​​ SSH 登录来验证这些更改。

验证更改

首先,尝试通过命令行或 SSH 客户端通过 SSH 连接到您的服务器。当系统提示输入凭据时,输入"root"作为用户名和相应的密码。如果您无法使用 root 账户通过 SSH 登录,则表示您已成功禁用 root 账户的 SSH 访问登录。

如果成功,您应该会看到一条消息,提示访问因凭据不正确而被拒绝。在保护系统免受未经授权的访问时,务必不留下任何漏洞,而禁用通过 SSH 的 root 账户登录是实现此目标的最关键步骤之一。

结论

在本指南中,我们介绍了在 Linux 中禁用通过 SSH 的 root 账户登录的重要性。允许 root 账户登录可能会带来严重的安全风险,因为它会为潜在攻击者提供直接访问您系统的途径。

禁用 root 账户登录是保护服务器及其数据安全的一个简单但关键的步骤。通过禁用 root 账户登录,您可以迫使攻击者更加努力地获取访问权限。


相关文章


有用资源