如何为 Linux 系统安装和启用 SSH 多重身份验证
Secure Shell (SSH) 是一种流行的协议,用于远程访问 Linux 服务器和系统。它提供安全、加密的连接,允许用户远程管理和管理他们的系统。
但是,仅使用用户名和密码访问 SSH 可能会使您的系统容易受到暴力攻击、密码猜测和其他安全威胁。这就是多重身份验证 (MFA) 派上用场的地方。
它是一个额外的安全层,要求用户提供两种或多种形式的身份验证才能访问系统。通过要求用户提供多种因素,MFA可以显着提高SSH访问的安全性。
MFA 对于处理敏感或机密数据的系统至关重要,因为它有助于防止未经授权的访问和数据泄露。通过实施 MFA,您可以显着提高 Linux 系统的安全性,更好地保护您的数据和资产。
本文介绍了如何在 Linux 系统上安装、配置和启用 MFA 以进行 SSH 访问。我们将概述设置受支持的 MFA 方法(例如 Google Authenticator 或 Duo Security)所需的步骤,并测试 SSH 访问的设置。
为 MFA 准备 Linux 系统
在 Linux 系统上安装和配置 MFA 之前,确保您的系统是最新的并且安装了必要的软件包至关重要。使用以下实用程序更新您的系统:
一旦您的系统是最新的,您必须安装 PAM(可插入身份验证模块)软件包,以启用 SSH 的 MFA。
安装和配置支持的 MFA 方法
有多种 MFA 方法可用于 SSH 访问,包括 Google Authenticator、Duo Security 和 YubiKey。在本节中,我们将重点配置 Google 身份验证器,这是一种广泛使用且易于设置的 SSH MFA 方法。
以下是安装和配置 SSH MFA 的 Google 身份验证器的步骤:
第 1 步:创建新用户
首先,您需要创建一个用于 SSH 访问的新用户。您可以通过运行以下代码来创建新用户:
将
第2步:切换到新用户
接下来,通过运行以下命令切换到新用户:
您的系统将提示您输入新用户的密码。
第3步:安装谷歌身份验证器
使用此实用程序安装 Google 身份验证器:
以下是上一个命令的示例输出:
此输出显示包管理器“apt”,安装“libpam-google-authenticator”包及其依赖项“libqrencode4”。 -y 选项自动确认安装提示。结果还显示安装过程的进度,包括下载和安装软件包以及将使用的任何其他磁盘空间。最后,它表明安装和安装后处理的任何相关触发器均成功。
第 4 步:生成新密钥
该实用程序将帮助您为用户生成新的密钥:
您的系统将提示您回答一些问题,包括以下问题:
您希望身份验证令牌基于时间(y/n)吗? y
您希望我更新您的“/home/yourusername/.google_authenticator”文件(y/n)吗? y
您想禁止多次使用同一身份验证令牌吗? (是/否) 是
您想启用速率限制吗? (是/否) 是
您可以接受大多数问题的默认值。但是,对于“您希望我更新您的“/home/
上一个命令行为用户生成一个新的密钥,用于为 MFA 创建一次性密码。
第 5 步:打开手机上的身份验证器应用程序
打开智能手机上的 Google Authenticator 应用程序并扫描屏幕上显示的二维码。这会将新用户添加到您的 Google 身份验证器应用程序中。
第6步:编辑配置文件
通过运行以下命令编辑 SSH 配置文件:
在文件末尾添加以下行:
此行启用 SSH 的质询-响应身份验证。
步骤 7:编辑 PAM 配置文件
此命令编辑 SSH 的 PAM 配置文件:
在文件末尾添加以下行以完成此步骤:
该实用程序启用 SSH 的 Google Authenticator 模块。
第 8 步:保存您的更改
保存对配置文件的更改并使用以下命令重新启动 SSH 服务:
此命令使用新配置重新启动 SSH 服务。
当您使用 SSH 登录 Linux 系统时,系统将提示您输入由 Google Authenticator 应用程序生成的一次性密码。输入一次性密码以完成登录过程。
测试您的 MFA 设置以进行 SSH 访问
在 Linux 系统上安装并配置适用于 SSH 的 MFA 后,测试设置以确保其正常工作非常重要。以下是测试 SSH 访问的 MFA 设置的步骤:
1. 打开一个新的终端窗口,并像平常一样使用 SSH 连接到您的 Linux 系统。例如:
将
在本例中,我们使用 ssh 命令以用户“victoria”登录 IP 地址为 192.168.1.100 的远程计算机。该命令提示确认远程主机的真实性,然后要求输入用户“victoria”的密码。经过身份验证后,我们会在远程计算机上看到 shell 提示符,表明我们已成功建立 SSH 会话。
2. 出现提示时输入用户的密码。
3. 输入密码后,MFA 应用程序应该提示您输入一次性密码。打开智能手机上的 Google Authenticator 应用程序,然后输入与您之前创建的用户相对应的代码。
4. 如果一次性密码正确,您应该可以登录 Linux 系统。如果密码不正确,系统将提示您从 MFA 应用程序输入另一个代码。
5. 成功登录后,您可以通过检查 SSH 日志来验证 MFA 是否正常工作。运行此实用程序以查看日志:
上一条命令实时显示 SSH 身份验证日志。
在日志中查找一行“已接受<用户名> 的公钥”,后跟“已接受<用户名> 的键盘交互/pam”。
Apr 17 10:45:27 server sshd[2998]: Accepted keyboard-interactive/pam for victoria from 192.168.0.2 port 57362 ssh2
前两行显示用户“victoria”已通过 IP 地址 192.168.0.2 的公钥和键盘交互方法成功进行身份验证。
如果一切正常,您可以使用启用了 MFA 的 SSH 登录 Linux 系统。
结论
在 Linux 系统上实施用于 SSH 访问的多重身份验证 (MFA) 可以通过添加额外的身份验证层来显着增强系统的安全性。通过要求用户除了常规密码之外还提供一次性密码,MFA 使攻击者更难访问您的系统。