如何在一臺機器上管理多個 Github 賬號 (New)

Matrixchan 發表於 2021-07-23
Github

我們有時候需要在一臺電腦上管理兩個或者兩個以上的 GitHub 賬號,例如要在電腦上同時使用個人和公司的Github賬號,那麼如何操作呢?

(以下方法也適合管理 GitHub 和 Gitlab 賬號。)

步驟

建立新的 SSH Key

假設個人電腦上已經有了一個正使用的 GitHub 賬號 user_a ,現在新增第二個 GitHub 賬號user_b的配置。
開啟終端生成一個新的 SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

注意,新生成的金鑰不要覆蓋原來的,在 ssh-keygent執行中讓新生成的 key 命名為 user_b
在我電腦裡面,它被儲存在 ~/.ssh/user_b_id_rsa

把新生成的 SSH key 新增到 ssh-agent:

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

參考:Generating a new SSH key and adding it to the ssh-agent

在第二個 GitHub 賬戶裡面新增 新生成 user_b_id_rsa.pub

登入第二個Github 賬號,把 user_b_id_rsa.pub 新增到賬號裡面。
參考: Adding a new SSH key to your GitHub account

建立配置檔案

假設 user_a 與 user_b 的 SSH key 相關檔案命名如下:

Github 帳戶 Id_rea Id_rsa.pub
user_a user_a_id_rsa user_a_id_rsa.pub
user_b user_b_id_rsa user_a_id_rsa.pub

在 ~/.ssh 目錄下新建 config 檔案。

$ touch ~/.ssh/config

編輯 config 檔案:

    Host user_a-github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/user_a_id_rsa

    Host user_b-github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/user_b_id_rsa

測試連線

$ ssh -T [email protected]_a-github.com
$ ssh -T [email protected]_b-github.com

若成功,都會接收到類似這樣的資訊:

Hi user_a! You've successfully authenticated, but GitHub does not provide shell access.
Hi user_b! You've successfully authenticated, but GitHub does not provide shell access.

測試用把倉庫提交到第二個 Github 賬號

新建一個資料夾,初始化為倉庫,建立第一個 commit

$ mkdir Test
$ cd Test
$ git init
$ git commit -am "first commit"
$ git remote add origin [email protected]_b-github.com:user_b/testing.git
$ git push origin master

注意:為本地倉庫新增遠端地址時,要替換為 config 檔案裡面的 Host 。
例如此處: user_b-github.com

git remote add origin [email protected]_b-github.com:user_b/testing.git

參考

  1. How to Work with GitHub and Multiple Accounts
  2. Using multiple github accounts with ssh keys
  3. Generating a new SSH key and adding it to the ssh-agent
  4. Adding a new SSH key to your GitHub account
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Write the code.Change the world.