SSH 连接主机时出现 Too many authentication failures 错误的一种特殊原因
该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/post/2024/05/27/ssh-too-many-authentication-error/
有一天,我连接任何一台主机时,都会出现 Received disconnect from xxxxx port 22:2: Too many authentication failures
错误,这是什么鬼?
一开始我以为是我昨天 pacman -Syu
滚出了问题,不过为了避免无用功,我先尝试了一下其他主机,发现其他主机都可以正常连接,只有这台主机不行。
我尝试了一下 ssh XXX -vvv
,发现它在尝试使用 ssh-agent
里注册的所有密钥进行连接,而且没有一个成功的,最后超出了远端主机的认证尝试次数,所以才会出现这个错误。
而我在 ~/.ssh/config
里设置了 AddKeysToAgent yes
,所以在启动 ssh-agent
以来,所有通过 ssh 命令使用的密钥都被注册到了 ssh-agent
里。
网上的文章通常推荐你在 ~/.ssh/config
里设置 IdentitiesOnly yes
,这样就只会使用配置文件里指定的密钥,而不会使用 ssh-agent
里的密钥——错了,是不能使用 ssh-agent
里的密钥了——这可不能接受,毕竟设置 AddKeysToAgent yes
的目的就是为了方便使用 ssh-agent
里的密钥。
看来,目前最简单的办法就是……遇到这个问题时,重启一下 ssh-agent
——在我找到更好的解决方案之前——反正平时并没有那么多密钥需要注册到 ssh-agent
里,所以重启一下也不是什么大问题。
comments powered by Disqus