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
posted @ 2021-12-22 12:02  北风之神0509  阅读(3246)  评论(0编辑  收藏  举报