此文僅代表我自己的查閱和理解並作為筆記,並不能作為指導內容。
問題產生的環境:
在 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 上面還要再換一次嗎?請大家幫我解惑
本作品採用《CC 協議》,轉載必須註明作者和本文連結