ssh 总是有太多的身份验证失败

信息安全 验证 SSH
2021-09-06 20:59:46

无论我尝试通过密码登录在哪个服务器上连接,我总是收到错误消息

 Too many authentication failures for

如果我交换了 ssh 密钥,我可以像以前一样无需密码登录,如果我重命名我的用户~/.ssh文件夹,我会怀疑密码提示。

我的.ssh文件夹中有什么问题?

如果我运行ssh-add -l此列表 > 5

因此,我的 ssh-agent 中有超过 5 个密钥,并且它似乎坚持在到达max_tries.

我也读过这个:SSH aborts with too many authentication failures

但是我在那里找不到解决方案,(可能是因为缺乏理解)。

对我来说登录的唯一方法是使用选项 PreferredAuthentications=password 调用 ssh:

ssh -o PreferredAuthentications=password host.example.org

但这只是一种解决方法我怎样才能解决这个问题?

2个回答

将此添加到您的~/.ssh/config

Host *
   IdentitiesOnly yes

来源:如何配置 SSH 使其不会自动尝试所有身份文件?

  1. 您可以在 ~/.ssh/config 文件中为您尝试访问的服务器设置首选身份验证方法。

    主机 <主机名>
    PreferredAuthentications 密码

  2. 您可以在 ~/.ssh/config 中为要连接的其他服务器设置 IdentityFile 参数,这样您既可以更快地连接到它们,又可以避免身份验证尝试失败过多的风险。

    主机 <主机名>
    身份文件 ~/.ssh/my_key.pem

您也可以使用配置文件为您的主机设置别名,使用 HostName 参数(主机将是昵称)。
在您发布链接的问题的答案中,使用的参数之一是 IdentitiesOnly,它忽略 ssh-agent 中的列表。

您也可以使用通配符(主要是 *)与所有其他服务器一起使用,请确保将通配符条目放在最后并为公钥主机设置首选身份验证,因为 ssh 使用第一个匹配算法。

man on ssh_config 将显示您可以使用的选项。