1. 修改了自己的 ~/.ssh/config 后,登录一台使用密码验证的ssh服务器,就开始报错 :
Too many authentication failures
2. 上面报错只发生在 ssh winip 这样使用了上述的ssh config里的配置时。
如果使用 ssh IP 就可以成功登录。所以说明是配置文件导致的问题。
3. 由于没有见过上述错误,百度后发现说的是多次尝试登录都失败了,所以会报出上面的错误。我一瞬间怀疑,难道是有人一直在猜密码吗?
比如 MaxAuthTries 6 这样的配置在ssh server端设置后就会导致这样。
4. 看了几篇文章都无法解决上面的问题。周末,只是再看了一眼,发现
-o PubkeyAuthentication=no , 马上测试:
ssh winip -o PubkeyAuthentication=no
登录成功!
5. 马上明白了——原来是我的ssh config文件里host *下面有多个IdentityFile,这样可以让它一个一个自动尝试。
但是上面的服务器是使用密码登陆的,所以一直尝试到最后都是失败,就报错了。
6. 于是修改ssh config给winip这个服务器加上PubkeyAuthentication no这个参数。好了问题解决。顺便注释掉host *下面用不到的证书。