如何在 Linux 中禁用 SSH Root 登录?
简介
在 Linux 系统中,SSH(安全外壳)是一种用于连接和管理远程服务器的常用协议。它允许用户安全地从世界任何地方访问和控制他们的服务器。SSH 的使用对于系统管理员和开发人员至关重要,因为它使他们能够执行各种任务,例如编辑配置文件、传输文件和远程管理服务。
但是,允许通过 SSH 进行 root 登录会带来重大的安全风险,可能导致未经授权的访问和对您系统的恶意攻击。通过禁用此功能,您可以大大降低 Linux 服务器被入侵的可能性。
本指南的目的是提供有关如何在 Linux 中禁用通过 SSH 进行 root 登录的分步说明。我们将探讨与允许通过 SSH 进行 root 登录相关的风险,并演示如何采取必要的措施来保护您的系统。
SSH 在 Linux 中的重要性
SSH 是一种安全远程访问协议,允许用户安全地通过不安全的网络(例如互联网)进行远程连接。它在客户端/服务器通信通道之间提供加密,有效地使黑客或其他可能试图未经授权访问或窃听流量的第三方难以进行操作。SSH 为系统管理员和开发人员提供了一种简单的方法,为他们提供了一种有效的方式来访问和管理其远程服务器,无论是在其工作站还是其他他们可能没有直接控制台访问权限的远程位置。
允许通过 SSH 进行 Root 登录相关的安全风险
虽然允许通过 SSH 进行 root 登录似乎是一个方便的功能,但由于其固有的安全控制措施不足,它带来了重大的安全风险。成功通过 root 登录获得访问权限的黑客可以完全控制服务器,从而更容易执行恶意活动,例如安装恶意软件或创建后门,而不会被检测到。
因此,任何旨在使用 SSH 获取提升权限的攻击,如果启用了 root 登录,则将更容易成功。禁用通过 SSH 进行 root 登录可以大大降低未经授权访问和恶意攻击的风险。
了解 SSH Root 登录
安全外壳 (SSH) 是一种允许不同系统之间安全通信的协议,允许用户建立和维护到 Linux 服务器的远程连接。SSH root 登录是指以 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 权限的管理任务。
禁用或删除受损的用户帐户总是比禁用或删除 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 更改为 no 编辑此行。
#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”作为用户名以及相应的密码。如果您无法通过 SSH 使用 root 帐户登录,则表示您已成功禁用 SSH 访问的 root 登录。
如果成功,您应该会看到一条消息,指示由于凭据错误而拒绝访问。在保护系统免受未经授权访问时,务必不要留下任何漏洞,禁用通过 SSH 进行的 root 登录是实现此目标的最关键步骤之一。
结论
在本指南中,我们介绍了在 Linux 中禁用通过 SSH 进行 root 登录的重要性。允许 root 登录可能会带来重大的安全风险,因为潜在的攻击者可以直接访问您的系统。
禁用 root 登录是保护服务器及其数据的一个简单但至关重要的步骤。通过禁用 root 登录,您可以迫使攻击者在尝试访问时更加努力。