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