Git下載報錯: Permission denied (publickey).問題解決

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

      githubgitlab正常來說是兩個不同的平臺,我在github上面填寫ssh key之後,本地之前的gitlab上對應的ssh key 不能使用了,感覺也是有點奇怪的說

      然後其實就是說保持githubgitlab 上填寫的ssh key 一致就行了,就能夠保證兩個平臺都可以訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章