有时候使用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