如何在 Linux 中禁用 SSH Root 登录?
介绍
在Linux系统中,SSH(Secure Shell)是用于连接和管理远程服务器的常用协议。它允许用户从世界任何地方安全地访问和控制他们的服务器。 SSH 的使用对于系统管理员和开发人员来说至关重要,因为它使他们能够执行各种任务,例如编辑配置文件、传输文件和远程管理服务。
然而,允许通过 SSH 进行 root 登录会带来重大的安全风险,可能导致对您的系统进行未经授权的访问和恶意攻击。通过禁用此功能,您可以显着降低 Linux 服务器受到威胁的机会。
本指南的目的是提供有关如何在 Linux 中通过 SSH 禁用 root 登录的分步说明。我们将探讨与允许 root 通过 SSH 登录相关的风险,并演示如何采取必要的步骤来保护您的系统。
SSH 在 Linux 中的重要性
SSH 是一种安全的远程访问协议,允许用户通过不安全的网络(例如互联网)安全地进行远程连接。它在客户端/服务器通信通道之间提供加密,有效地使黑客或其他第三方难以尝试未经授权的访问或窃听流量。 SSH 为系统管理员和开发人员提供了一种简单的方法,让他们能够从工作站或无法直接访问控制台的其他远程位置访问和管理远程服务器。
与允许通过 SSH 进行 root 登录相关的安全风险
虽然允许通过 SSH 进行 root 登录似乎是一个方便的功能,但由于其固有的缺乏安全控制措施,它带来了重大的安全风险。通过 root 登录成功获得访问权限的黑客可以完全控制服务器,使他们更容易执行恶意活动,例如安装恶意软件或创建后门而不被发现。
因此,如果启用 root 登录,任何旨在使用 SSH 获取提升权限的攻击都会更成功。通过 SSH 禁用 root 登录可显着降低未经授权的访问和恶意攻击的风险。
了解 SSH 根登录
Secure Shell (SSH) 是一种能够在不同系统之间进行安全通信的协议,允许用户建立和维护与 Linux 服务器的远程连接。 SSH root登录是指通过SSH以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 权限的管理任务。
禁用或删除受损的用户帐户总是比根帐户更容易。完成这些准备步骤后,我们就可以继续通过 SSH 禁用 root 登录。
通过 SSH 禁用 root 登录使用文本编辑器编辑文件
通过 SSH 禁用 root 登录的第一步是打开 sshd_config 文件。该文件通常位于 /etc/ssh/ 目录中。打开终端并输入以下命令 -
sudo nano /etc/ssh/sshd_config
此命令将在名为“nano”的文本编辑器中以超级用户权限打开 sshd_config 文件。在此过程中使用 sudo 非常重要,因为您需要管理访问权限来编辑和保存更改。
将 PermitRootLogin 设置从“是”更改为“否”
打开 sshd_config 文件后,查找名为 PermitRootLogin 的设置。默认情况下,此设置通常设置为“yes”,这意味着允许通过 SSH 进行 root 登录。您需要将此设置更改为“否”。
只需将 yes 更改为 no 即可编辑此行。
#PermitRootLogin yes
PermitRootLogin no
这会禁用 root 通过 SSH 登录,并且只允许其他具有 sudo 权限的用户访问。
保存并关闭文件
要保存更改,只需按键盘上的 CTRL + O,然后按 ENTER(回车)键即可。要退出 Nano 文本编辑器,请在键盘上键入 CTRL + X。
重新启动 SSH 服务
编辑 sshd_config 后的最后一步是重新启动 ssh 服务,以便它应用我们之前使用以下命令所做的更改 -
sudo systemctl restart sshd.service
测试所做的更改
完成在 Linux 中禁用 SSH root 登录的步骤后,必须验证更改是否成功。可以通过尝试使用终端或 SSH 客户端通过 SSH 以 root 用户身份登录来验证这些更改。
验证更改
首先,尝试通过命令行或 SSH 客户端通过 SSH 连接到您的服务器。当提示输入凭据时,输入“root”作为用户名和相应的密码。如果您无法通过 SSH 使用 root 帐户登录,则表明您已成功禁用 root 登录进行 SSH 访问。
如果成功,您应该会看到一条消息,指示由于凭据不正确而导致访问被拒绝。在保护您的系统免遭未经授权的访问时,不要留下任何漏洞,这一点很重要,而通过 SSH 禁用 root 登录是实现这一目标的最关键步骤之一。
结论
在本指南中,我们介绍了在 Linux 中通过 SSH 禁用 root 登录的重要性。允许 root 登录可能会给潜在攻击者提供访问您系统的直接路径,从而带来严重的安全风险。
禁用 root 登录是保护服务器及其数据的一个简单但关键的步骤。通过禁用 root 登录,您可以迫使攻击者更加努力地尝试获取访问权限。