如何修复“SSH太多身份验证失败”错误

有时,在尝试通过SSH连接到远程系统时,您可能会遇到错误“从x.x.x.x端口22:2收到断开连接:身份验证失败太多”。

有时,在尝试通过SSH连接到远程系统时,您可能会遇到错误“ 从xxxx端口22:2收到断开连接:身份验证失败太多 ”。 在这篇简短的文章中,我将通过几个简单的步骤解释如何修复此错误。

另请参阅加速Linux中SSH连接的4种方法

以下是我在使用ssh客户端时遇到的错误的屏幕截图。

SSH  - 身份验证失败太多

SSH - 身份验证失败太多

我发现这是因为我的机器上存在许多ssh身份密钥,每次运行ssh客户端时,它都会在尝试连接到远程时尝试ssh-agent和所有其他密钥所知的所有ssh密钥server( vps2 ,如上面的截图所示)。 这是ssh的默认行为。

由于远程服务器上的ssh服务器( sshd )需要特定的身份密钥,因此服务器拒绝连接,并且ssh客户端因上述错误而中止。

要修复此错误,您需要添加值为yesIdentitiesOnly ,它指示ssh仅使用在命令行上指定的身份验证身份文件或在ssh_config文件中配置的身份验证身份文件,即使ssh-agent提供了额外的身份。

例如:

$ ssh -o IdentitiesOnly=yes vps2
SSH连接成功

SSH连接成功

或者,如果您希望这适用于所有ssh客户端连接,则可以在~/.ssh/config文件中对其进行~/.ssh/config

$ vim ~/.ssh/config

在文件中的Host *部分下添加以下配置,如screesnhot中所示。

Host * 
       	IdentitiesOnly=yes
在SSH中配置身份

在SSH中配置身份

保存文件中的更改并退出。 现在您应该能够运行ssh而不在命令行上指定选项-o IdentitiesOnly=yes ,如图所示。

$ ssh vps2
SSH连接成功

SSH连接成功

有关更多信息,请参见ssh-config手册页。

$ man ssh-config

您可能会发现以下SSH相关文章很有用。

    1. 如何在Linux中创建SSH隧道或端口转发
    2. 如何在Linux中将默认SSH端口更改为自定义端口
    3. 如何在Linux中查找所有失败的SSH登录尝试
    4. 如何在Linux中禁用SSH root登录
    5. 关闭SSH后保持远程SSH会话运行的5种方法

在这篇简短的文章中,我展示了如何在ssh中轻松修复“ 从xxxx端口22:2收到断开连接:身份验证失败太多 ”。 如果您有任何疑问,请使用下面的评论表与我们联系。


分享按钮