如何修复“SSH 身份验证失败次数过多”错误
有时,在尝试通过SSH连接到远程系统时,您可能会遇到错误“从 x.x.x.x 端口 22:2 接收到断开连接:身份验证失败次数过多”。在这篇简短的文章中,我将解释如何通过几个简单的步骤修复此错误。
另请阅读:在 Linux 中加速 SSH 连接的 4 种方法
以下是我在使用 ssh 客户端时遇到的错误的屏幕截图。
我发现这是因为我的机器上存在许多 ssh 身份密钥,每次运行 ssh 客户端时,它都会尝试 ssh-agent 已知的所有 ssh 密钥以及所有其他密钥,当尝试连接到远程服务器时(vps2,如上面的屏幕截图所示)。这是 ssh 的默认行为。
由于远程服务器上的 ssh 服务器 (sshd) 需要特定的身份密钥,因此服务器会拒绝连接,并且 ssh 客户端会中止并出现上述错误。
要修复此错误,您需要添加值为 yes
的 IdentitiesOnly
,它指示 ssh 仅使用在命令行上指定的或在配置中配置的身份验证身份文件ssh_config 文件,即使 ssh-agent 提供其他身份。
例如:
ssh -o IdentitiesOnly=yes vps2
或者,如果您希望它适用于所有 ssh 客户端连接,您可以在 ~/.ssh/config
文件中配置它。
vim ~/.ssh/config
在文件中的 Host *
部分下添加以下配置,如 screennhot.conf 所示。
Host *
IdentitiesOnly=yes
保存文件中的更改并退出。现在,您应该能够运行 ssh,而无需在命令行上指定选项 -o IdentitiesOnly=yes
(如图所示)。
ssh vps2
有关详细信息,请参阅 ssh-config 手册页。
man ssh-config
您可能会发现以下 SSH 相关文章很有用。
- 如何在 Linux 中创建 SSH 隧道或端口转发
- 如何在 Linux 中将默认 SSH 端口更改为自定义端口
- 如何在 Linux 中查找所有失败的 SSH 登录尝试
- 如何在 Linux 中禁用 SSH Root 登录
- 关闭 SSH 后保持远程 SSH 会话运行的 5 种方法
在这篇短文中,我展示了如何轻松修复 ssh 中的“从 x.x.x.x 端口 22:2 接收到断开连接:身份验证失败次数过多”。如果您有任何疑问,请使用下面的评论表联系我们。