同一台电脑上使用两个 github 账号
生成多个 SSH key
1
2ssh-keygen -t rsa -f ~/.ssh/id\_rsa\_one -C “one@xxx.com”
ssh-keygen -t rsa -f ~/.ssh/id\_rsa\_two -C “two@xxx.com”这样会在
~/.ssh
目录下生成四个文件:id_rsa.one
//账号 one 的私钥id_rsa.one.pub
//账号 one 的公钥id_rsa.two
id_rsa.two.pub
创建配置文件 config
在
~/.ssh
目录下新建 config 文件(如果有则直接修改),令不同 Host 实际映射到同一 HostName,但密钥文件不同。加上以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13## one (first account)
Host one.github.com # 别名
HostName github.com # 实际的 url
PreferredAuthentications publickey
User one
IdentityFile ~/.ssh/id_rsa_one
## two(second account)
Host two.github.com
HostName github.com
PreferredAuthentications publickey
User two
IdentityFile ~/.ssh/id_rsa_two添加 SSH key 及 测试
分别登陆两个 github 账号,在
Settings —> SSH and GPG keys
中,点击 “new SSH key”,把id_rsa.one.pub
和id_rsa.two.pub
这两个公钥的内容分别添加到相应的账号中。为了确认我们可以通过 SSH 连接 github,可通过输入下面命令来验证
$ssh -T git@one.github.com
如果看到下面信息,就说明连接正常。
1
2Hi one! You’ve successfully authenticated, but Git
Hub does not provide shell access.该步骤详细内容可以参考教程:使用 SSH 连接 github
用户名和邮箱配置
注意:因为一台电脑上配置了多个 github 账号,所以就不能再配置全局的用户名和邮箱了,而是在不同的仓库下,如果需要连接不同的 git 账号,配置相应的局部用户名和邮箱即可,如果之前配置过全局的用户名和邮箱,需要取消配置。
1
2
3
4
5
6
7## 取消全局 用户名/邮箱 配置
git config --global --unset user.name
git config --global --unset user.email
## 设置局部 用户名/邮箱 配置
git config user.name “xxxx”
git config user.email “xxxx@xx.com”使用 git
1
2
3
4
5
6
7# 原来写法
$ git clone git@github.com: 用户名/abc.git
# 现在写法
$ git clone git@one.github.com: one的用户名/abc.git
$ git clone git@two.github.com: two的用户名/abc.git
同一台电脑上使用两个 github 账号
https://flepeng.github.io/049-Git-同一台电脑上使用两个-github-账号/