Mac 上配置多 git 账户
1. 清空默认全局的 username 和 email(没有的话可以省略)
- 查看查看已配置的git列表
git config --list
- 清空默认的用户名和邮箱
git config --global --unset user.name
git config --global --unset user.email
2. 给不同的git账户生成ssh-key:比方说一个公司账号,一个个人账号
- git生成ssh-key,默认如果不设置名字的话就是id_rsa
//输入后按enter键
ssh-keygen -t rsa -C "xxx@126.com"
如有以下内容输出,则意味着生成密钥成功
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/james/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rwtxjGTJPoV9Mg8lFSf8D4X6jFexWVXKOMRaVyo+RO8 xxx@126.com
The key's randomart image is:
+---[RSA 3072]----+
| .o=o+. .*|
| . + o.=+++o.|
| * * .==o== |
| + + *ooo++ |
| = S .+o+E |
| + .. +.. |
| . .. |
| . . |
| o. |
+----[SHA256]-----+
- 个人的git账号生成ssh-key,设置路径成id_rsa_xxx@163.com,和之前生成的那个区分开来就行
//输入自定义的rsa名字到自己的邮箱上去
ssh-keygen -t rsa -f ~/.ssh/id_rsa_xxx@163.com -C "xxx@163.com"
//后面的一样的...
3. 给他们分别添加到ssh-agent信任列表
- 添加到信任列表
ssh-add ~/.ssh/id_rsa
这里可能会遇到Error比如:
Could not open a connection to your authentication agent.
这时候需要先输入
ssh-agent bash
重复上面 3.1(添加到信任列表)的操作,返回Identity added就是成功了
ssh-add ~/.ssh/id_rsa
//返回这个就表示添加成功了
Identitiy added: ~/.ssh/id_rsa
- 再次添加另一个到信任列表
ssh-add ~/.ssh/id_rsa_xxx@163.com
//返回这个就表示添加成功了
Identitiy added: ~/.ssh/id_rsa_xxx@163.com
4. 添加公钥到git账户中
- 复制公钥,然后粘贴到git网站的公钥中去
pbcopy < ~/.ssh/id_rsa.pub
//pbcopy < ~/.ssh/id_rsa_xxx@163.com.pub
5. 在config文件配置多个ssh-key
- 打开目录,看看有没有config文件,没有的话新建一个
cd ~/.ssh/ && ls
- 分别配置公司和自己的ssh-key
键 | 值 | 规则 |
---|---|---|
Host | 主机 | 随意写,自己能识别就行 |
Hostname | 主机名 | 必须写正确,是你的git公有地址,比方说码云:gitee.com |
IdentityFile | 身份文件 | 你的rsa具体路径地址 |
User | 用户 | 可随意写,建议使用Host的前面部分,后面具体clone操作都会用到这个user |
config文件内容如下:
# 126
Host 126.github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa
User 126
# 163
Host 163.github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa_xxx@163.com
User 163
6. 测试连接
测试公司git账户连接:如果单个账户情况一般就是ssh -T git@xxx,如果配置了config,那么可以这样测试:ssh -T git@{config里面的user}.xxx主机名
ssh -T git@126.github.com
- 连接成功
Hi xxx! You've successfully authenticated.but GitHub does not provide shell acess
- 测试自己的,并连接成功
ssh -T git@163.github.com
# Hi xxx! You've successfully authenticated.but GitHub.COM does not provide shell acess
到这一步为止,基本上后面能欢快的玩耍了
7. clone and push
//到自己工作的目录,准备下载个工程下来
cd ~/xxx/projects/
//原本单个账户的情况
git clone git@github.com:xxx/TestAndroid.git
//设置多个账户和config后
git clone git@gmail.github.com:xxx/demo.git
//.....done
//前往具体的工程目录
cd demo
//添加、提交,push等~~~
git add .
git pull
git commit -m "test commit"
git push
//OK啦