git多账号使用
1 背 景
在公司上班的员工会同时拥有两个git账号, 一个是公司内部的, 仅允许工作时使用; 另一个是个人的, 常用于日常的学习记录. 此时, 面临的问题是如何在一台电脑(客户端)上正常使用两个账号?
系统: MacBook Pro
2 方案
- 不可再通过全局user.name和user.email来使用
- 配置多个账号的ssh密钥实现多账号的使用
3 操作流程
3.1 删除用户配置信息
删除全局配置中的用户信息, 文件: ~/.gitconfig
[user]
name = ***
email = ***
3.2 生成两组密钥分别存储于不同文件
# 一路回车, 直到结束, 生成第一组密钥, 存储文件为: ~/.ssh/id_rsa 和 ~/.ssh/id_rsa_pub
ssh-keygen -t rsa -C "email_1"
# 指定新的密钥存储文件, 生成第二组密钥
ssh-keygen -t rsa -C "email_2"
# 指定存储的文件名, 生成的文件为: ~/.ssh/id_rsa_github 和 ~/.ssh/id_rsa_github_pub
~/.ssh/id_rsa_github
生成的目录结构
~/.ssh
├── id_rsa
├── id_rsa.pub
├── id_rsa_github
└── id_rsa_github.pub
3.3 分别在相应网站上添加公钥
- id_rsa.pub
- id_rsa_github.pub
3.4 配置私钥对应的服务器
文件~/.ssh/config
添加如下内容:
Host 公司的git
HostName 公司的git
User git
IdentityFile ~/.ssh/id_rsa # 对应的私钥
Host git@github.com # 个人的git
HostName https://github.com # 个人的git
User git
IdentityFile ~/.ssh/id_rsa_github # 对应的私钥
3.5 测试
$ ssh -T git@github.com
Hi zhouweixin! You've successfully authenticated, but GitHub does not provide shell access.
TODO 为什么仍然需要配置用户信息才可使用
git config --local user.email 1216840597@qq.com
git config --local user.name zhouweixin