GitHub Desktop報錯 Authentication failed. Some common reasons include


[注意:前面都是廢話,重點在后面的解決方案]

背景

   這幾天在學習GitHub,雖然之前用過一段時間,但是感覺好多東西不懂,這個用好了對於工作學習幫助會很大,方便安全。所以想系統的學習下。后續再去了解下gitee(關鍵是速度快)。昨晚搞了一晚上沒解決這問題,今天上午才解決,所以有必要寫一篇文章,雖然大神很多,但是小白也不少,我也是小白之一。

環境

   Windows 10企業版

   Git

   GitHub Desktop

  

問題

  克隆倉庫的時候報錯  Authentication failed. Some common reasons include:

      

 

   大概意思就是授權失敗,我遇到的這個問題的 主要原因是最后一條:“- If you use SSH authentication, check that your key is added to the ssh-agent and associated with your account.”

  

 

嘗試過程

   ①網上有說“在GitHub Desktop -> Repository -> Repository Settings -> Remote 中將ssh URL改成 https URL即可”,這個菜單壓根就進不去;

  ②這似乎碰到的不是同一個問題,雖然幫助好多人解決了問題:git中fatal: Authentication failed的問題

  ③這篇(Authentication Failure with GitHub Desktop #8860)還是挺有用的,奈何全英文當時沒看懂,有個人已經抓到重點了:

   

 

   ④后面基本確認是ssh key的問題,還查看了官方教程 生成新 SSH 密鑰並添加到 ssh-agent         新增 SSH 密鑰到 GitHub 帳戶,本來已經生成了類似id_ed25519.pub的文件,但是還是沒用:

    

         檢查現有 SSH 密鑰:我的開始是按照官方教程生成id_ed25519.pub,沒成功,后來生成的id_rsa_pub才可以,這個具體原因不知,可能是因為上圖提到的系統版本問題,也不深究了。

    

   ⑤另外還看過這個,但是我的是有known_hosts 這個文件的。

  

1 ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

 

 

⑥最終解決是在這里:ssh-keygen -t rsa -C"your_email@youremail.com"

對於大多數人來說,上面說的都是廢話.....

解決方案

總結一下步驟:

 前提是已經裝好git和GitHub Desktop。

一.先檢查現有 SSH 密鑰

  1. 打開 Git Bash。

  2. 輸入 ls -al ~/.ssh 以查看是否存在現有 SSH 密鑰(這一步也可以直接到文件夾找):
    1 $ ls -al ~/.ssh
    2 # Lists the files in your .ssh directory, if they exist(列出.ssh文件夾里的文件)
      

 

           3. Git Bash里的結果:

             

            文件夾此時的狀態:

          

 

 

           4.結論:缺少公鑰和私鑰對。(如果有了如下公鑰和私鑰對,直接到第三步)。

              備注:   如果存在公鑰,默認情況下的公鑰的文件名是以下之一:

       

 

 

二.生成新 SSH 密鑰並添加到 ssh-agent

  這里不建議用官網的教程,因為我用后失敗了,這里用這位兄弟寫的教程

  1.繼續上面的Git Bash,郵箱就是自己注冊GitHub的郵箱,比如“110@qq.com”,后面要求輸入密碼啥的,直接回車即可:

     

1  ssh-keygen -t rsa -C "your_email@example.com"

   

 

 

  2.此時再在Git Bash輸入

1 ls -al ~/.ssh

  得到:

 

   

 

 3.到”C:\Users\用戶名\.ssh“,用編輯器打開id_rsa.pub文件,復制里面的一串代碼(全部都要復制)。

 4.登錄GitHub賬戶,單擊右上角的頭像,選擇Settings,選擇SSH and GPG keys,然后單擊綠色的“New SSH key”,標題隨便起一個名字,我是家里的機器就填了“Home”。key就是上面一步復制的id_rsa.pub文件里的代碼:

    

 

     

 

   5.然后單擊Add SSH key,會讓你重新輸一遍密碼:

    

 

   6.最終確認后的結果是這樣:

    

 

 7.最后一步,測試 SSH 連接,在Git Bash中輸入以下內容:

  

1 $ ssh -T git@github.com
2 # Attempts to ssh to GitHub

  結果為:

   

 

  說明成功了!現在再去Git Desktop,克隆倉庫就可以了:

    

 

 

備注:如果上面“$ ssh -T git@github.com”有問題,是這樣的:

  

 

 

后記

  寫這篇隨筆也用了幾個小時,真正有效的步驟其實就那么幾步,希望能夠幫助到別人吧。后續會學習《Version Control with Git》,這本書是前幾天讀的入門書籍《GitHub入門》推薦的,大概是用命令行來玩GitHub。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM