大约两周前,我工作场所的一台服务器开始给我这个错误,然后又给我另一个错误。现在,甚至我的本地服务器(在我的家庭网络上)也给我这个错误。这是什么意思?我用过,ssh-keygen -R
但没有帮助。命令
ssh -o PreferredAuthentications=keyboard-interactive
帮助了工作中的服务器,但在家里我收到以下错误:
身份验证失败次数过多
权限被拒绝(公钥,密码)。
答案1
- 此链接可能有助于回答您有关“身份验证失败次数过多”错误消息的问题
根据的手册页
ssh-keygen
,ssh-keygen -R
命令:从 known_hosts 文件中删除属于主机名的所有键
因此,删除的密钥是来自您计算机上配置的 ssh 服务器的密钥。客户的
~/.ssh/know_hosts
文件,并且对您从服务器端收到的错误没有影响。关于您的家庭服务器和消息:
权限被拒绝(公钥,密码)
服务器可能配置为仅允许基于密钥的身份验证。如果您尝试使用用户名和密码进行身份验证,则可能需要检查您的
/etc/ssh/sshd_config
并更改为PasswordAuthentication no
。PasswordAuthentication yes
最后,您可能希望
ssh
使用选项执行命令-v
(最多添加 3 个 v 以获取更多详细信息),以便查看有关您的 ssh 客户端如何与 ssh 服务器交互的有用消息。您可能还需要-i' option in order to use the proper key configured in your servers
~/.ssh/authorized_keys` 文件。你的命令可能看起来像这样:
ssh -i '~/.ssh/workplace_server_rsa' -v user@workplace_server_address
答案2
身份验证失败次数过多
此消息是由于远程 SSH 服务器上强制执行的允许限制导致身份验证尝试失败次数过多而导致的。这可能意味着您在 SSH 代理中添加了多个身份,而您的 SSH 客户端提供了太多身份,导致这些身份无法使用。
以下是一些建议:
- 添加
-v
以查看是否是这种情况(您使用了太多身份)。 - 按 列出添加的身份
ssh-add -l
。 - 通过以下方式从代理中删除失败的身份:
ssh-add -d
。 - 您也可以删除所有身份,
ssh-add -D
然后重新添加相关的身份。 如果您可以访问 SSH 服务器,请选中该
MaxAuthTries
选项(参见:man sshd_config
)。如果这些都不起作用,请确保您是否使用了正确的凭据或文件。
答案3
尽管答案已经给出,我还是想分享一下我如何解决这个问题。
1.ssh-add -D
删除所有 RSA 条目。
2.vi ~/.ssh/known_hosts
手动移除所有行。dd
每行按 。
3.ssh-keygen -q -f ~/.ssh/xyz_rsa -t rsa
创建xyz_rsa和xyz_rsa.pub文件
4.ssh-copy-id -i ~/.ssh/xyz_rsa user@server_address
将您的私钥从本地(客户端)机器复制到远程(服务器)
5.ssh-add ~/.ssh/xyz_rsa
添加新的RSA条目
6.ssh-add -l compare to ssh-keygen -l -f xyz_rsa.pub
7.重启您的系统,因为更改可能无法即时应用。