[Git] 從 Github 抓取 git submodule 時,出現 Permission denied 的錯誤訊息?

[Git] 從 Github 抓取 git submodule 時,出現 Permission denied 的錯誤訊息?

最近被 git submodule 搞的很煩…

本來 git clone 完成之後,想跑  git submodule update --init  把 submodule 都抓下來,

結果出現 git@github.com: Permission denied 的錯誤訊息:

$ git submodule update --init

Submodule 'ps/ps-db' (git@github.com:organ/ps-db.git) registered for path 'ps/ps-db'
Cloning into '/Users/testuser/deploy/ps/ps-db'...
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.
fatal: clone of 'git@github.com:organ/ps-db.git' into submodule path '/Users/testuser/deploy/ps/ps-db' failed

 

比較怪的是之前跑同樣指令,沒遇到問題…

不過事後來看,可能是 submodule 的路徑從 HTTPS 被改成 SSH 格式了。

那麼,要怎麼解決抓不下來 submodule 的問題呢?

 

查了一下,原來是要把自己的 SSH public key 傳到 Github 上去~

平常 SSH public key 是存在 ~/.ssh/id_rsa.pub,

如果這檔案不存在的話,可以執行  ssh-keygen 指令來產生。

接著,到 Github > Settings > SSH and GPG keys > 點下 New SSH key 按鈕:

 

把 id_rsa.pub 檔案的內容複製貼上:

 

這樣子就新增完成了:

 

這時再執行同樣的 git submodule update --init  指令,

就可以成功抓取 submodule 了:

$ git submodule update --init

Submodule 'ps/ps-db' (git@github.com:organ/ps-db.git) registered for path 'ps/ps-db'
Cloning into '/Users/testuser/deploy/ps/ps-db'...
Submodule path 'ps/ps-db': checked out 'b51fbe5563d6a81eb966aff307f9366d4ba236be'

 

參考資料:Quick GitHub ‘Permission denied (publickey)’ SSH error fix

(本頁面已被瀏覽過 610 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料