我們有時候需要在一臺電腦上管理兩個或者兩個以上的 GitHub 賬號,例如要在電腦上同時使用個人和公司的Github賬號,那麼如何操作呢?
(以下方法也適合管理 GitHub 和 Gitlab 賬號。)
步驟
建立新的 SSH Key
假設個人電腦上已經有了一個正使用的 GitHub 賬號 user_a ,現在新增第二個 GitHub 賬號user_b的配置。
開啟終端生成一個新的 SSH Key:
$ ssh-keygen -t rsa -C "user_b@gmail.com"
注意,新生成的金鑰不要覆蓋原來的,在 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 git@user_a-github.com
$ ssh -T git@user_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 git@user_b-github.com:user_b/testing.git
$ git push origin master
注意:為本地倉庫新增遠端地址時,要替換為 config 檔案裡面的 Host 。
例如此處: user_b-github.com
git remote add origin git@user_b-github.com:user_b/testing.git
參考
- How to Work with GitHub and Multiple Accounts
- Using multiple github accounts with ssh keys
- Generating a new SSH key and adding it to the ssh-agent
- Adding a new SSH key to your GitHub account
本作品採用《CC 協議》,轉載必須註明作者和本文連結