[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 次)