Github 使用 Deploy Key 存取 repo

打算將私有 repo 提供唯讀權限給特定對象, 但 Github 的 personal access token 並不提供這樣針對特定 repo 的唯讀權限設定, 後來發現似乎可以使用 repo 內的 Deploy Key 來達成.

  • Exp. mytest@ichiayi.com / 不需要密碼

    ssh-keygen -t rsa -b 4096 -C "mytest@ichiayi.com"

  • 觀看執行結果
  • 將剛剛產生的 pub 貼上 GitHub Deploy Key 內

    cat .ssh/id_rsa.pub

  • 確認剛剛產生的 key 是否在預設路徑 Exp. /home/mytest/.ssh/id_rsa
  • ssh -T git@github.com

    • 看檢查訊息
  • 如果有多個 deploy key 採用不同檔名存放 Exp. /home/mytest/deploy-key/abc1_id_rsa /home/mytest/deploy-key/abc1_id_rsa.pub
  • 可以在 ssh 後面加上 -i /home/mytest/deploy-key/abc1_id_rsa 的參數指定使用哪個 deploy key

    ssh -T -i /home/mytest/deploy-key/abc1_id_rsa git@github.com

  • Exp.

    git clone git@github.com:iii-org/devops-ui.git

  • 看執行結果
  • 如果是多個 Deploy Key 的設定方式, 必須編輯 ~/.ssh/config 來指定哪個 github repo 用哪個 deploy key Exp.

    Host devops-ui github.com
    Hostname github.com
    IdentityFile /home/mytest/github-key/iiiorg-devops-ui_id_rsa
    User iii-org
    Host repo-b-shortname github.com
    Hostname github.com
    IdentityFile /home/mytest/github-key/repo-b_id_rsa
    #User username-on-remote-machine

  • tech/github_deploy_key.txt
  • 上一次變更: 2021/08/06 21:10
  • jonathan