解決git push一直提示輸入用戶名及密碼、fatal: Could not read from remote repository的問題


問題描述:

在實操中,git push代碼到github上一直提示輸入用戶名及密碼,並且跳出的輸入框輸入用戶名和密碼后,報錯找不到遠程倉庫

實際解決中,發現我環境有兩個問題解決:

  • git push一直提示輸入用戶名及密碼
  • “fatal: Could not read from remote repository”

問題1

原因:

是因為git使用https協議,每次pull, push都要輸入密碼,而如果采用ssh協議
(當使用了http的方式clone代碼到本地,相應的,也是使用http的方式將代碼push到服務器,就出現這個問題)

解決方式:

解決辦法很簡單,將http方式改為ssh方式即可;先移除舊的http的origin,在添加新的ssh方式的origin

改動完之后直接執行git push是無法推送代碼的,需要設置一下上游要跟蹤的分支,與此同時會自動執行一次git push命令,此時已經不用要求輸入用戶名及密碼啦!
git push --set-upstream origin master
但在這里碰到了我的問題2

問題2

原因:

出現這錯誤一般是以下兩種原因:

  • 客戶端與服務端未生成 ssh key
  • 客戶端與服務端的ssh key不匹配
    我的問題是不匹配,需要重新生成一次ssh key ,並重新配置一下GitHub賬戶即可

解決方式:

  1. 生成新的SSH key
       如果是客戶端與服務端未生成ssh key,那么直接使用:ssh-keygen -t rsa -C "youremail@example.com" 生成新的rsa密鑰即可。
       如果是客戶端與服務端的ssh key 不匹配,此時需要先將本地生成的 id_rsa以及id_rsa.pub這兩個文件【一般在用戶名下的.ssh文件夾下】刪除掉,然后再使用上述指令生成新的rsa密鑰;
    上面命令的目的是為了讓本地機器ssh登錄遠程機器上的GitHub賬戶無需輸入密碼。

  2. 將SSH key 添加到 ssh-agent
       使用 ssh-add ~/.ssh/id_rsa 將產生的新ssh key添加到ssh-agent中:

但我出現“Could not open a connection to your authentication agent.”的錯誤,這個使用以下方式解決:
eval "$(ssh-agent -s)"
然后再次執行 ssh-add ~/.ssh/id_rsa 指令。

3. 將SSH key 添加到你的GitHub賬戶
  在賬戶選項中選擇 “Settings”–>“SSH and GPG keys”–>“New SSH key”,然后打開之前新生成的id_rsa.pub文件,將密鑰復制后填寫到賬戶中【注意填寫時的格式要求】
4. 驗證key
  使用 ssh -T git@github.com 對ssh key 進行驗證:


免責聲明!

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



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