網上一般搜不到解決方案,千篇一律說的是 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