You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSH出现too many authentication failures错误的原因排查求助

问题描述

通过SSH连接主机时偶尔遇到认证失败过多的问题,多数在使用Git通过SSH操作时出现(Git SSH操作频率高于直接SSH)。

直接SSH连接时的错误信息:

Received disconnect from <server ip> port 22:2: Too many authentication failures
Disconnected from <server ip> port 22

通过SSH代理连接时的错误信息:

Received disconnect from UNKNOWN port 65535:2: Too many authentication failures
Disconnected from UNKNOWN port 65535
Killed by signal 1.

仅使用SSH密钥认证,几天前还能正常连接,查看ssh -v输出发现,系统会尝试.ssh/config中为此主机配置的所有IdentityFile,以及ssh-agent中所有可用身份密钥。近期因季度密钥轮换,向agent中添加了新密钥。

原因分析
  • SSH服务器的认证尝试次数限制:绝大多数SSH服务器(如OpenSSH)默认会限制单个连接的认证尝试次数(通常为6次左右)。你添加新密钥后,ssh-agent中的密钥数量加上.ssh/config里配置的IdentityFile总数,已经超过了服务器允许的上限。SSH会按顺序尝试所有可用密钥,当尝试次数达到限制时,服务器就会主动断开连接,触发该错误。
  • 有效密钥的尝试顺序靠后:如果对应主机的有效密钥排在尝试列表的后半段,还没轮到它验证就已经耗尽了服务器允许的尝试次数,自然会认证失败。Git操作通常是高频或批量触发连接,这种情况会更频繁出现。
  • SSH代理转发的叠加效应:使用SSH代理时,代理可能会携带本地agent的所有密钥,导致需要尝试的密钥数量进一步增加;同时代理的处理逻辑可能让尝试次数的计算更复杂,更快触达服务器上限,因此会出现端口65535的错误并被信号终止。
  • .ssh/config配置冗余:如果你的.ssh/config为该主机配置了多个IdentityFile,同时又开启了AddKeysToAgent或agent中存储了大量密钥,两者叠加会让总尝试次数暴增,直接超出服务器的限制阈值。

内容的提问来源于stack exchange,提问作者bluesmoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:05:12