gitlab 页面添加 sshkey后,git clone git@xxx.com:xx.git 任然提示需要输入密码的问题解决。解决debug1: send_pubkey_test: no mutual signature algorithm
网上一般搜不到解决方案,千篇一律说的是 ssh-keygen -t rsa -C "xx@xx.com" ,然后把id_rsa.pub的内容复制,在网页上的setting里面粘贴添加到ssh keys里面,
但对有的git服务器或者你的电脑操作系统,有时候光这么做却任然不行,提示需要输入密码git@xx.com's password:
关键是git这个账号的密码并不是用户个人的账号,所以无法输入密码了。
此时需要使用命令排除问题,命令行输入 ssh -Tv git@xx.com, 一定要带v才能显示debug信息,
你会看到这条信息 debug1: send_pubkey_test: no mutual signature algorithm
就是修改或新建"~/.ssh/config"文件,添加如下配置,实测有用:
gitee.com 只是举个例子,实际是你们公司gitlab的域名,就是取git clone git@xx.com 中的xx.com
这两行写在config文件中
Host gitee.com
PubkeyAcceptedKeyTypes=+ssh-rsa
例如我的电脑.ssh文件夹截图,C:\Users\ydf19\.ssh文件夹中自己新建config文件,写上上面内容就可以啦
真的太坑了,如果不会排查问题的人会一筹莫展,因为网上99.99%的教程是只教你这么做:
ssh-keygen -t rsa -C "xx@xx.com",然后把id_rsa.pub贴到网页上,这样做后有时候任然不行,你会一直怀疑自己复制错了,导致一直用错误的方式排查问题。
例如我把id_rsa.pub添加到github可以,但是公司的gitlab一直不行,说民光这么做不一定够,要增加 config文件
希望对有的人有帮助。
我电脑是新换了个win11,网上教程一般只做这两步,ssh-keygen -t rsa -C "yangdf@akulaku.com" ,然后把id_rsa.pub贴到ssh keys页面里面。对github两步就可以了,但是我们的gitlab可能需要做第三步增加config文件。第三步增加config文件是对有的电脑系统而言,我的上个电脑不需要这么做。昨天换了个新win11系统电脑。
参考文章:
https://blog.csdn.net/lindorx/article/details/111885764
https://www.cnblogs.com/ice-image/p/15420411.html
反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。