文章目錄
1、遇到問題
1、現象1
在我們的程序中進行下載的話,會出現permission denie(publickey),其實這個地方已經說明了問題,就是我們的公匙不對。
2、現象2
在本地進行git clone的時候,通過小烏龜同樣也會報這個錯。
3、現象3
我們嘗試用ssh的方式連接一下github.com看一下,可以看到連接失敗了,同樣是permission denie(publickey) 的問題。
2、問題分析
permission denie(publickey) 翻譯過來就是公匙不對導致不能下載,我們知道通過ssh的方式去下載的話,是需要持有私匙和公匙,才能正常下載。
這個地方提示的就是ssh key缺失的問題,那麼有的小夥伴可能疑惑說,我明明配置了,爲什麼不能使用,其實我剛開始也是這麼想的,但是忽略了一個問題,我要下載的包在github,而項目是存放在gitlab上的,這兩個是不通用的。
3、解決方案(針對github)
1、生成是ssh key
在我們的 Git Bash here 打開的控制檯上面進行命令操作:
- 先輸入ssh-keygen -t rsa -C "你的github賬號"
- 然後選擇保存key的位置,基本就是默認C:/Users/admin/.ssh 目錄下面的id_rsa文件(如果已經存在這個文件的話,可以選擇其他位置)
- 輸入你的passphrase,這個應該可以理解爲密碼,正常我這邊是直接回車,就是沒有密碼
- 重新確認一下passphrase
- 然後會生成你的rsa文件。
2、複製ssh key
正常在你的C:User/admin/.ssh/ 目錄下面會生成一個id_rsa_pub 的文件,用nodepad++或者文本工具將它打開,複製裏面的字符串內容
3、登錄github
如果沒有賬號可以去註冊一下,不知道github和gitlab是不是通用的,沒試過。
4、new ssh key
點擊頭像,選中Settings
選擇SSH and GPG key
選擇new ssh key
把我們剛纔複製的id_rsa_pub中的字符串粘貼到key對應的框中
4、gitlab的解決方法
參考我的另一個文章:Go unkown reversion問題解決
5、注意的點
1、替換https爲ssh
這個沒有嘗試過沒替換行不行,但是如果上面的步驟操作下來不成功的話,可以試一下。
git在下載的時候使用的是http的方式而不是ssh的方式,所以這邊會把前綴做一個替換。
打開我們的C:\Users\admin.gitconfig文件做一個全局參數的編輯,加入下面的內容:
[url "[email protected]:"]
insteadOf = https://github.com/
在控制檯也可以修改,可以參考我之前的git相關的文章說明
2、不同賬號使用一個ssh key
github和gitlab正常來說是兩個不同的平臺,我在github上面填寫ssh key之後,本地之前的gitlab上對應的ssh key 不能使用了,感覺也是有點奇怪的說
然後其實就是說保持github 和gitlab 上填寫的ssh key 一致就行了,就能夠保證兩個平臺都可以訪問