ssh 连接错误 Too many authentication failures 解决方法
背景
有时候使用 ssh 登录 或者 git ssh 方式连接 时会遇到:Too many authentication failures
这个错误的原因是客户端尝试连接次数大于服务端限制的次数。
默认情况下: ssh 客户端会按照认证顺序:
1. 依次尝试 ssh-agent 中的秘钥和配对~/.ssh 的秘钥对
2. 如果都失败了会尝试密码登录
如果第一步尝试的秘钥已经超过了服务端的认证尝试次数就会报告Too many authentication failures
。
这里有两个解决方案。
- 修改服务端最大尝试次数
- 减少客户端自动尝试次数
修改服务端
1. 修改服务端最大尝试次数 (不推荐)
打开配置文件 /etc/ssh/sshd_config
修改 MaxAuthTries 6
为更大的值例如
MaxAuthTries 20
百度和谷歌这个错误一般都会让你这么干,但是不推荐这么干,会存在安全隐患 并且有时候服务端不在我们控制之下。
比如:第三方的 git 仓库服务器
修改客户端
2. 减少客户端自动尝试次数
多次尝试失败,一般是因为 ssh-agent 中缓存了多个 pem 证书。
有时候我们为了方便会使用 ssh-add 一次添加多个 pem 客户端并不能知道哪个 pem 属于哪个服务器。所以每一次连接都会顺序验证。
可以使用 ssh-add -D
清除所有缓存的 pem 。
需要秘钥认证的时候可以使用参数 ssh -i 你的秘钥 root@x.x.x.x
转载自
作者:陆崖 2
原文:https://www.jianshu.com/u/bf00c425770a