一台电脑绑定两个github帐号教程
思路
ssh 方式链接到 Github,需要唯一的公钥,如果想同一台电脑绑定两个Github 帐号,需要两个条件:
- 能够生成两对 私钥/公钥
- push 时,可以区分两个账户,推送到相应的仓库
解决方案:
- 生成 私钥/公钥 时,密钥文件命名避免重复
- 设置不同 Host 对应同一 HostName 但密钥不同
- 取消 git 全局
用户名/邮箱
设置,为每个仓库独立设置 用户名/邮箱
操作方法
- 查看已有
密钥
- Mac 下输入命令
ls ~/.ssh/
,看到id_rsa
与id_rsa_pub
则说明已经有一对密钥。
- 生成新的公钥,并命名为
id_rsa_2
(保证与之前密钥文件名称不同即可)
ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "yourmail@xxx.com"
在
.ssh
文件夹下新建config
文件并编辑,另不同 Host 实际映射到同一HostName
,但密钥文件不同。Host 前缀可自定义,例子中ieit
1
2
3
4
5
6
7
8
9
10# default
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# two
Host ieit.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2将生成的
id_rsa.pub
,id_rsa_2.pub
内容copy 到对应的 repo
- 参考教程: 使用SSH密钥连接Github【图文教程】
- 测试 ssh 链接
1
2
3
4ssh -T git@ieit.github.com
ssh -T git@github.com
# Hi IEIT! You've successfully authenticated, but GitHub does not provide shell access.
# 出现上边这句,表示链接成功 - 将项目
clone
到本地,folder-name
是本地文件夹路径1
git clone git@github.com:whatever folder-name
- 取消全局 用户名/邮箱设置,并进入项目文件夹单独设置
1
2
3
4
5
6# 取消全局 用户名/邮箱 配置
git config –global –unset user.name
git config –global –unset user.email
# 单独设置每个repo 用户名/邮箱
git config user.email “xxxx@xx.com”
git config user.name “xxxx” - 命令行进入项目目录,重建 origin (whatever 为相应项目地址)
1
2git remote rm origin
git remote add origin git@ieit.github.com:whatever - 成功,可以 push 测试一下
1
git push origin master
同时配置 github Bitbucket SSH
由于 Bitbucket 可以免费建立私有项目,与 Github 绝配,而同时设置 SSH 与上文相同,只要生成一对不重复的 ssh-key ,配置文件上加
1 | # bitbucket |
测试联通性:ssh -T git@bitbucket.org
参考资料
- 本文链接:https://www.wenboz.com/p/53b8.html
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!