Git 總是出現許可權拒絕的情況(個人筆記)

bigb1993發表於2020-05-07

此文僅代表我自己的查閱和理解並作為筆記,並不能作為指導內容。

問題產生的環境:
在 Homestead 開發環境下做完了 實戰入門 ,開始向 實戰進階 進發
新建 Laravel 專案並且在我的 Github 建立一個名為 LaraBBS 的倉庫之後之後執行

$ git init 
$ git add -A
$ git commit -m '初始化'
$ git remote add origin git@github.com:#####/LaraBBS.git
$ git push origin master

這時候就會提示我沒許可權

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

接下來是我的解決思路:

  • 方案一:
    翻閱到第一課的 Github 部署部分執行以下程式碼(既然做了就做全…)

        # 檢查 git 配置
        $ git config user.name
        $ git config user.email
    
        # 重新生成一次公鑰
        $ eval  "$(ssh-agent -s)" 
        $ ssh-add ~/.ssh/id_rsa
        $ cat ~/.ssh/id_ras.pub

    然後複製 id_ras.pub 的公鑰內容,在 Github 的 SSH and GPG keys 選項裡新增一個 SSh Keys ,這時候再執行

     $ ssh -T git@github.com    # 檢測是否通訊成功
     $ git push origin master

    成功的將程式碼託管到 Github 的 LaraBBS 庫裡了!

    接下來我去百度為什麼每個專案都要單獨執行一次 eval "$(ssh-agent -s)" 而這句話是什麼意思,以下內容來自我的查詢到有意義的解釋
    生成新 SSH 金鑰並新增到 ssh-agent
    但是這並沒有解決為什麼每個專案都要再新增一遍 SSHKey 的問題。

  • 方案二:

     $ vim /etc/bash.bashrc

    在開啟的檔案最後換行新增兩句

     $ eval "$(ssh-agent -s)"
     $ ssh-add ~/.ssh/id_rsa

    之後 Git 就會自己新增 SSHKey 到金鑰裡面去了
    那麼問題來了…
    GitHub 上面還要再換一次嗎?:cry:

    請大家幫我解惑

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章