如何修复 SSH 认证失败次数过多错误?
介绍
安全外壳或 SSH 是一种加密网络协议,已成为通过不安全的网络(如互联网)进行安全远程访问和文件传输的标准。SSH 通过加密它们之间所有流量来提供两个主机之间交换数据的机密性和完整性。
它被系统管理员、开发人员和 IT 专业人员广泛用于远程管理服务器、访问文件和执行命令。SSH 在现代计算中的重要性不容忽视。
了解错误
是什么导致了错误?
“认证失败次数过多”错误发生在 SSH 服务器在短时间内收到一定数量的认证失败尝试时。默认情况下,此限制设置为 6,这意味着如果用户在短时间内 6 次认证失败,服务器将拒绝任何进一步的认证尝试并返回“认证失败次数过多”错误消息。此错误最常见的原因是登录凭据错误。
这可能是由于输入了错误的用户名或密码,或者 SSH 连接两端配置设置不正确。
如何识别错误?
在您尝试连接到 SSH 服务器并多次失败后,通常会在 SSH 客户端终端窗口中显示“认证失败次数过多”错误消息。
该消息通常显示为“从 [ip_address] 断开连接 −
[username] 的认证失败次数过多。”
请注意,此错误消息可能会因您特定的终端应用程序而略有不同。如果您不确定是否遇到此问题,可以检查系统日志以获取更多信息。
在 Linux 系统上,这些日志通常位于 /var/log/auth.log 或 /var/log/secure 中。查找包含“authentication”(认证)或“failed login attempts”(登录失败尝试)等词语的条目。
忽略错误的可能后果
忽略“认证失败次数过多”错误可能会对用户和系统管理员都造成严重后果。首先,被锁定在 SSH 服务器之外意味着无法访问那里托管的关键文件和服务。
这可能发生在服务器级别,但在某些情况下,也可能涉及用户的 IP 地址被安全系统或 ISP 列入黑名单。
故障排除技巧
检查您的认证方法
遇到“认证失败次数过多”错误时,第一步是检查您的认证方法。SSH 支持三种类型的认证方法:密码认证、公钥认证和键盘交互式认证。
密码认证 −这是 SSH 认证最简单的方法。它要求用户输入用户名和密码组合才能访问。
但是,它也比其他方法安全性低,因为密码很容易成为黑客的目标。公钥认证:此方法使用两个密钥
一个公钥和一个私钥
进行身份验证。
公钥存储在服务器上,而私钥保留在客户端计算机上。
键盘交互式认证 −此方法通过要求用户输入多种身份验证方式(例如密码和基于令牌的代码)来提供额外的安全层。
在 sshd_config 文件中增加 MaxAuthTries 值
解决此错误的另一种方法是增加 sshd_config 文件中的 MaxAuthTries 值。此值决定在关闭连接之前允许多少次尝试,如果其中任何一次尝试都不成功。
要增加此值,您首先需要找到 sshd_config 文件,该文件应位于基于 Unix 的系统上的 /etc/ssh/ 目录中或 Mac OS X 系统上的 /etc/ 目录中。
找到显示“MaxAuthTries”的行,并将其默认值从 6(或当前读取的值)更改为更高的数字,例如 10 或 15,具体取决于您的偏好。
修复 SSH 认证失败次数过多错误
重新启动 SSH 服务:重新引导您的 SSH 守护程序
重新启动安全外壳 (SSH) 服务可能是解决“认证失败次数过多”错误的最直接方法。重新引导 SSH 将重新启动所有连接并清除可能导致此错误的任何空闲会话。
重新启动 SSH 服务的过程因系统而异,但在大多数基于 Linux 的系统上,您可以使用以下命令 −
sudo systemctl restart sshd
或者,您可以使用以下命令停止和启动服务 −
sudo systemctl stop sshd sudo systemctl start sshd
重新启动或停止/启动服务后,尝试重新连接以查看问题是否仍然存在。
终止空闲会话:通过终止非活动连接释放资源
解决此问题的另一种方法是终止非活动会话。如果同时运行了过多的活动会话,它们可能会消耗系统资源并导致此错误。要查看 Linux 和 Mac 系统上活动 SSH 连接的列表,请运行 −
w
这将显示已连接用户的列表以及登录时间、终端类型、IP 地址等详细信息。
要手动终止空闲会话,请使用以下命令 −
pkill -u username sshd
将 `username` 替换为您实际的用户名,并以 root 身份或使用 sudo 权限运行它。此命令将终止该特定用户的全部空闲会话。
禁用未使用的认证方法:通过禁用密码认证加强安全性
在处理“认证失败次数过多”问题时,保护系统 SSH 访问的最有效方法之一是禁用未使用的认证方法(例如密码认证),转而使用基于密钥的认证。基于密码的认证安全性较低且容易受到暴力破解尝试的影响,使其成为黑客的主要目标。
要在 Linux 和 Mac 系统上禁用密码认证,请使用您首选的文本编辑器(例如 vi 或 nano)编辑 SSH 守护程序配置文件,并添加或更改以下行 −
PasswordAuthentication no
这将禁用密码认证,要求用户使用其他方法(例如公钥认证)。
预防措施
保护 SSH 访问的最佳实践
了解如何修复“认证失败次数过多”错误固然重要,但采取预防措施并保护您的 SSH 访问也同样重要。保护 SSH 访问的最佳实践之一是禁用 root 登录,因为它可能存在潜在的安全风险。
相反,创建一个具有管理员权限的单独用户帐户,并使用该帐户进行所有 SSH 登录。此外,执行强密码策略并确保仅使用安全的加密协议(如 AES 或 3DES)。
保护 SSH 访问的另一个重要方面是实施双因素身份验证 (2FA)。这通过要求用户在获得访问权限之前提供两种身份验证方式来增加额外的安全层。
定期监控日志和使用模式
定期监控日志和使用模式可以帮助及早发现系统上的任何可疑活动。建议您设置审计工具(例如 fail2ban),该工具监控身份验证日志并在多次登录失败尝试后阻止 IP 地址。
此外,在您的 sshd_config 文件中启用详细日志记录,以便您拥有有关每次 SSH 登录尝试(包括成功的尝试)的详细信息。除了监控日志外,监控使用模式(例如一天中的时间使用趋势或某些帐户中的异常活动)也很有益。
结论
本文提供了一份关于如何修复 SSH 认证失败次数过多错误的综合指南。我们首先了解了 SSH 是什么以及为什么它很重要,然后简要解释了错误及其后果。本文随后概述了用户可以遵循的故障排除技巧来解决问题,以及可以采取的预防措施来保护 SSH 访问。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP