解决了git gitlab工程时Too many authentication failures的世界级问题

总结:运行了ssh agent + ssh-add -l(高速缓存)了很多私钥缓存+ssh验证次数比较少三者同时满足时,就会发生 Too many authentication failures错误。解决就是把自己的私钥通过ssd-add添加进ssh agent的高速缓存里面,或者修改验证尝试次数。

--------------------------------------------------------------------------------------------------------------------------------------------------

1)描述一下我的bug

前题:我使用的是ssh秘钥的方式,在docker服务的Linux下进行免密clone 我远端gitlab私有仓库的工程。

我原来使用git clone、git pull、 git commit都可以正常使用的。但是突然有一天就不能正常使用了。git clone gitlab里的私有的和共有的都不能正常使用。

报错如下:

Received disconnect from 35.231.145.151: 2: Too many authentication failures
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

2)开始百度了

最多的是修改/etc/ssh/sshd_config里面有个参数MaxAuthTries 6,该大一些,可以避免。我发现我的这个文件里面根本就没有这个参数,难道我自己添加一个这个参数?

 

后来啊,我好奇ssh是在哪里进行缓存了这些私钥的?阴差阳错的让我看到了ssh-agent  ssh-add这些命令。我就man了一下,原来是有个ssh 鉴定的agent在帮ssh干活。看一下有没有啊!

The authentication agent must be running and the SSH_AUTH_SOCK environment variable must contain the name of its socket for ssh-add to work.

在docker的主机里面:

    echo $SSH_AUTH_SOCK
    /tmp/ssh-MjrmCvjB4CWb/agent.26300

在自己本地的虚拟机上:

    echo $SSH_AUTH_SOCK

    <空空如也>

说明这ssh的鉴定的代理不是每个Linux都运行了。

我们现在bug出现在docker的Linux上,它有ssh agent就行。

root@811f1c99151e:~# ssh-add -l
2048 3a:4d:b3:97:3c:d1:fc:8e:d3:a8:b1:13:59:13:12:ce  (RSA1)
2048 56:1a:6b:66:fa:ff:6c:37:c3:c3:fd:79:20:17:97:2a  (RSA1)
2048 96:f5:6d:7d:85:f3:23:af:61:6b:60:22:cc:e3:4b:b1  (RSA1)
2048 1b:64:c2:22:8c:48:63:08:87:86:cc:75:10:86:ea:e1  (RSA1)
2048 d1:31:08:1b:a3:d8:05:d9:41:28:70:25:f0:08:ae:bd  (RSA1)
2048 71:62:a0:0a:a3:84:a6:07:d7:56:61:a8:39:05:c3:79  (RSA1)
2048 4a:51:36:66:32:29:dd:3d:8a:c6:56:1b:88:c3:5a:be  (RSA1)
2048 e3:83:a1:9c:4c:bc:3c:80:46:96:fc:19:2d:fc:31:41  (RSA1)
2048 32:da:e1:da:0b:dc:78:f6:f9:a6:b1:08:24:ee:35:e6  (RSA)
2048 c2:23:da:0a:73:07:d6:79:bf:68:d2:e3:1f:e1:70:4a  (RSA)
2048 be:7b:8b:19:0a:8c:61:d3:6c:9e:89:68:62:43:73:9f  (RSA)
2048 f1:a0:73:2e:9f:f7:19:65:89:94:61:d4:58:c2:7d:57  (RSA)
2048 8f:e0:61:bc:ce:36:39:69:56:e4:69:83:cd:1b:0c:0d  (RSA)
2048 78:f7:18:58:9f:dd:eb:1e:af:62:c3:33:54:54:ef:83  (RSA)
2048 c2:cf:eb:2e:b9:1b:9d:fa:c4:b9:15:91:05:5c:e8:79  (RSA)
2048 cb:79:3c:88:92:d4:e1:5f:fc:14:21:cf:b3:fd:65:ec  (RSA)

好多啊,是不是这里面的私钥太多了,在这里面搞了几下不行就报错了。这么把我的私钥添加到这个代理的高速缓存去试一下

ssh-agent  /bin/bash

ssh-add ~/.ssh/id_rsa_qq2

ssh-add -l
2048 a6:f0:42:2c:b7:d1:f6:d3:93:52:42:51:16:bf:f0:32 /root/.ssh/id_rsa_qq2 (RSA)

然后在使用git clone , git pull 就正常了。

这些私钥是从哪来的呢,我不知道。我这个添加一下,发现原来的没有了,奇怪的很。算了,放你一马。能用了就行,毕竟认识是螺旋上升的嘛,上升太快了也不好。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值