如何修复 SSH 身份验证失败次数过多错误?
简介
安全 Shell 或 SSH 是一种加密网络协议,已成为在不安全网络(例如互联网)上进行安全远程访问和文件传输的标准。SSH 通过加密两台主机之间的所有流量,确保它们之间交换的数据的机密性和完整性。
系统管理员、开发人员和 IT 专业人员广泛使用它来远程管理服务器、访问文件和执行命令。SSH 在现代计算中的重要性怎么强调都不为过。
了解错误
导致错误的原因是什么?
当 SSH 服务器快速连续收到一定数量的身份验证失败尝试时,就会出现"身份验证失败次数过多"错误。默认情况下,此限制设置为 6,这意味着如果用户在短时间内 6 次身份验证失败,服务器将拒绝任何进一步的身份验证尝试,并返回"身份验证失败次数过多"错误消息。此错误的最常见原因是登录凭据不正确。
这可能是由于输入了错误的用户名或密码,或者 SSH 连接两端的配置设置不正确造成的。
如何识别错误?
"身份验证失败次数过多"错误消息通常在您尝试连接 SSH 服务器并多次失败后显示在 SSH 客户端终端窗口中。
该消息通常显示"收到来自 [ip_address] 的断开连接 -
[用户名] 的身份验证失败次数过多。"
需要注意的是,此错误消息可能会因您的特定终端应用程序而略有不同。如果您不确定是否遇到了此问题,可以检查系统日志以获取更多信息。
在 Linux 系统上,这些日志通常位于 /var/log/auth.log 或 /var/log/secure。请查找包含"身份验证"或"登录尝试失败"等字词的条目。
忽略错误的可能后果
忽略"身份验证失败次数过多"错误可能会对用户和系统管理员造成严重后果。首先,被 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 守护进程
重启安全 Shell (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 访问的安全。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

