在没有服务器访问的情况下在 Ubuntu 上重置“身份验证失败次数过多”

在没有服务器访问的情况下在 Ubuntu 上重置“身份验证失败次数过多”

最近我得到了一堆密钥和一堆服务器,不得不做一些侦查工作来找出哪个密钥与哪个服务器匹配。经过几次尝试(可能是 3 次?),SSH 将我锁定。我猜是因为设置MaxAuthTries。我们已经找到了正确的密钥,但现在我无法使用它,因为错误消息:

Too many authentication failures for ubuntu
Authentication failed.

我以为重启服务器会起作用,但没有成功。即使尝试使用 root SSH 登录也会出现同样的错误。我因此完全被锁定在服务器之外,而且永远不会重置,这似乎有点奇怪。我是否错过了有关如何重置它的信息?实际上很难在 Google 上找到有关此信息,因为遇到此问题的每个人似乎都有一堆密钥,~/.ssh一个愚蠢的客户端在循环使用,但我非常具体地设置了我的密钥:

ssh <user>@<ip-address> -i /path/to/pem.pem

谢谢你!

答案1

如果您没有把自己锁在所有机器之外,那么我建议您在所有服务器上尝试每把钥匙,直到您得到一个宾果。这样至少有三把钥匙会找到他们的服务器。而且通常锁定不会永远持续下去。然后您可以找到接下来三把钥匙的服务器。

此外,在大多数情况下,锁定是针对 IP 的,或者至少是针对子网的。因此,如果您可以从其他位置使用其他 IP(例如您能够登录的三台服务器)尝试,那么您可能可以为每个 IP 再尝试三次。

无法详细介绍您的锁定信息,因为有很多方法可以配置它 - 并且您甚至没有提示您的服务器是什么操作系统和风格。

编辑:

“我说的是 ubuntu”——抱歉,我错过了这个显而易见的细节。Ubuntu(至少到 16.04)默认不附带任何类型的锁定,所以一定是以某种方式添加的。

您写道“一串钥匙和一堆服务器”,所以我想出了上述想法,至少可以更快地到达您的其他服务器。

因为您使用了 -i,所以它不可能是其他地方描述的问题,该问题是由 gnome key daemon 连续提供多个密钥直到 sshd 拒绝而引起的。

MaxAuthTries 也不能成为罪魁祸首,因为它仅限制每个连接的登录尝试次数(默认为 6 次)。下次连接时,您还有 6 次尝试机会。

有很多方法可以限制登录尝试;fail2ban 是其中之一,denyhosts 是另一个,您还可以找到更多。

看起来你只关注一台服务器。如果你设法登录到其他服务器之一,你就可以找出如何实现此锁定。如果你无法使用在那里找到的信息解决问题,这里的其他人可能会提供帮助。

重读您的帖子时,我偶然发现了“一串密钥”。尽管 -i 应该让您的 ssh 命令仅使用您提供的密钥,但您可以在 ssh 命令中添加 -v 标志。这样,您就可以看到 ssh 正在尝试做什么,或者服务器是否立即将其切断。

答案2

请尝试以详细模式 (ssh -vv) 进行 ssh 以仔细检查您是否只提供了一个密钥。即使您使用 -i,客户端偶尔也会提供来自代理的密钥。理想情况下,请尝试以下操作:

  1. 防止使用药剂
  2. 获取详细输出
  3. 把选项放在前面...以防万一。

    env -u SSH_AUTH_SOCK ssh -vv -i /path/to/pem.pem -l user ip-address
    

答案3

  1. 创建子目录 ~/.ssh/keys/
  2. 几乎所有键都移到那里
  3. 调整 ~/.ssh/config 以查找子目录
    IdentityFile ~/.ssh/keys/myproper.key

问题已解决。没有任何损坏。

非常感谢 daniel kullmann 如何从“用户 root 的身份验证失败次数过多”中恢复

答案4

您可以尝试以下操作

$ ssh -o PubkeyAuthentication=no root@host

如何从“用户 root 的身份验证失败次数过多”中恢复

相关内容