一台电脑多个github账号设置


如何在一台电脑上使用多个github账号,由于之前已经配置过一个github账号,最近又注册了了一个账号,显然现在多账号的问题出现在自己面前,于是就扒了下多账号的设置。希望对遇到同样问题的你有一点帮助。

生成多个SSH Key

进入用户家目录Windows 使用Git Bash, Linux 打开terminal. 各系统对应的目录位置如下:
Windows目录: C:\Users\用户名.ssh
Linux\Mac目录:~/.ssh

1
ssh-keygen -t rsa -C email

输入如上命令,email 替换成需要生成key的邮箱回车,由于是多账号,我们需要修改默认的id_rsa 文件的名称,这里我们加上后缀,标实不同的github账号,输入密码部分可以留空或输入,若输入密码后续git push到远程仓库时均需输入此处设置的密码,方便起见我们使用ssh-agent(详见下文),回车若看到如下图所示,表示生成ssh key 成功了,重复如上操作生成多个ssh key。

进入用户家目录下的.ssh文件目录下,可以看到我们生成的多组key, id_rsa id_rsa.pub分别对应私钥与公钥

配置Config文件

为了让git知道我们用哪个账号提交,这里需要配置config文件,在当前家目录 .ssh文件夹下新建config文件,配置如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 配置github1
Host yaonew.com # 自定义的host简称
HostName github.com # 主机名可用ip也可以是域名
IdentityFile C:\\Users\\peeka\\.ssh\\id_rsa_yaonew # 证书文件路径
# 认证方式 可以设为 publickey,password publickey,keyboard-interactive
PreferredAuthentications publickey
User git # 登录用户名

# 配置github2
Host marspie.com
HostName github.com
IdentityFile C:\\Users\\peeka\\.ssh\\id_rsa_marspie
PreferredAuthentications publickey
User git

配置完以上信息后,git clone的链接应修改为如下:

1
2
3
4
5
6
7
# 原始clone 地址
git@github.com:yaonew/test1.git
git@github.com:marspie/test2.git

# 新clone地址
git@yaonew.com:yaonew/test1.git
git@marspie.com:marspie/test2.git

登陆Github添加公钥

分别登陆两个github账号,进入Settings –> SSH and GPG keys,拷贝~/.ssh 下.pub公钥文件内容添加至github

SSH连接测试

1
2
ssh -T git@github.com
ssh -T git@marspie.com


当看到如上信息时测试成功,同时远端github的钥匙已变成绿色

本地git设置

这样设置过就OK了吗,显然不行,由于之前使用过一个github账号,并设置了全局git账号,这里需要移除

1
2
3
4
5
6
7
8
9
10
11
# 原有全局账号设置
git config --golbal user.name "name"
git config --golbal user.email "xxx@qq.com"

#全局配置账户、邮箱已经移除
git config --global --unset user.name
git config --global --unset user.email

#查看全局用户名、全局邮箱
git config --global user.name
git config --global user.email

然后在具体的工程目录下设置用户及邮箱

1
2
git config user.name yaonew
git config user.email yaonew@126.com

分别做相应账号工程下做相应修改并提及

ssh-agent

因为我们生成ssh key设置了密码,每次git push 认证时都需要输入密码,显然这不是我们希望的,ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

打开 ssh-agent

1
2
3
4
# github官方的bash
ssh-agent -s
# 其它,比如msysgit
eval $(ssh-agent -s)

添加私钥

添加秘钥时输入密码后续的认证就交由ssh-agent了,直接提交丝般顺滑 ^_^

1
2
ssh-add ~/.ssh/id_rsa_yaonew
ssh-add ~/.ssh/id_rsa_marspie

愉快的多账号之旅开始了。。。

Alex.Yao wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!