0%

Git Bash配置多个Github用户

其实有两种方法,第一种比较简单粗暴但是有效,第二种需要配置各种比较麻烦,但是一劳永逸。

方案一

对于 windows 系统, 选择控制面板 =》 用户账户 =》凭据管理器 =》windows 凭据,删除里面类似 git 相关的的用户信息(以 git 打头的相关数据)。 这样你在敲 git push 就会弹出对话框让你重新输入用户名和密码。 输入你要更改的用户名和密码就可以了。

方案二

注册 Github 账号

首先肯定得需要多个 Github 账号,这里用两个作为示范

生成新 ssh key

打开 git bash,输入~/.ssh进入到.ssh 文件夹

1
~/.ssh

在.ssh 目录下,可以将原有的 id_rsa 和 id_rsa.pub 删掉,然后输入ssh-keygen -t rsa -C "你的第一个github邮箱地址"

1
ssh-keygen -t rsa -C [email protected]

然后输入并回车(这个是私钥的名称,可以随意取),这里我就用 github 的用户名:id_rsa_xiansakana

1
id_rsa_xiansakana

之后输入密码和再一次确认密码可以为空,回车。

然后在.ssh 目录下会出现私钥 id_rsd_xiansakana 和公钥 id_rsa_xiansakana.pub。

打开公钥 id_rsa_xiansakana.pub,将内容 copy 到第一个 github 的 SSH keys 中。

同理,配置第二个 github 邮箱地址,并将公钥 id_rsa_saltedfishcj.pub 的内容 copy 到第二个 github 的 SSH keys 中

1
2
ssh-keygen -t rsa -C [email protected]
id_rsa_saltedfishcj

添加 ssh key

默认 SSH 只会读取id_rsa,所以为了让 SSH 识别新的私钥,需要将其添加到SSH agent

如果报错:Could not open a connection to your authentication agent.无法连接到 ssh agent,可执行ssh-agent命令后再执行ssh-add ~/.ssh/id_rsa_xiansakana命令。

1
2
3
ssh-agent bash
ssh-add ~/.ssh/id_rsa_xiansakana
ssh-add ~/.ssh/id_rsa_saltedfishcj

配置 config 文件

然后在.ssh 目录下,新建一个 config 文件(如果无),命令:touch config,再对 config 文件进行编辑

1
touch config
1
2
3
4
5
6
7
8
9
10
11
#Default 第一个账号([email protected])
Host xiansakana
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_xiansakana

#second 第二个账号([email protected]
Host saltedfishcj
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_saltedfishcj

其中 Host 后的名字可以随意方便自己记忆,但 HostName 必须为 github.com(或者其它 git 地址)。

测试配置

使用命令:ssh -T git@xiansakana

1
ssh -T git@xiansakana

如果看到下面的命令表示配置成功了。

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

同理

1
ssh -T git@saltedfishcj

查看当前用户

1
ssh -T [email protected]

查看当前密钥

1
ssh-add -l

切换账号

1
2
git config --global user.name "name"
git config --global user.email "email"

不过通常应该是可以用上面添加 ssh key 的方法来切换

1
2
3
ssh-agent bash
ssh-add ~/.ssh/id_rsa_xiansakana
ssh-add ~/.ssh/id_rsa_saltedfishcj

查看配置

1
git config --global --list

如果此文章能给您带来小小的工作效率提升,不妨小额赞助我一下,以鼓励我写出更好的文章!