如何在一台机器上管理多个Github账号

你说我会遇到更好的人,其实是你想拥有更好的人

我们有时候需要在一台电脑上管理两个或者两个以上的 GitHub 账号,例如要在电脑上同时使用个人和公司的 Github 账号,那么如何操作呢?

创建新的 SSH Key

假设个人电脑上已经有了一个正使用的 GitHub 账号 user_a ,现在添加第二个 GitHub 账号 user_b 的配置。
打开终端生成一个新的 SSH Key:

1
ssh-keygen -t rsa -C "user_b@gmail.com"

注意,新生成的密钥不要覆盖原来的,在 ssh-keygent 运行中让新生成的 key 命名为 user_b。
在我电脑里面,它被保存在 ~/.ssh/user_b_id_rsa
把新生成的 SSH key 添加到 ssh-agent:

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

在第二个 GitHub 账户里面添加 新生成 user_b_id_rsa.pub

登录第二个 Github 账号,把 user_b_id_rsa.pub 添加到账号里面。

在~/.ssh 目录下新建 config 文件

1
$ touch ~/.ssh/config
1
2
3
4
5
6
7
8
9
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

测试连接

1
2
$ ssh -T git@user_a-github.com
$ ssh -T git@user_b-github.com

若成功,都会接收到类似这样的信息:

1
2
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

1
2
3
4
5
6
7
$ 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 branch -M main
$ git push -u origin main

注意:为本地仓库添加远程地址时,要替换为 config 文件里面的 Host 。
例如此处: user_b-github.com

1
git remote add origin git@user_b-github.com:user_b/testing.git

https://learnku.com/articles/59358