mac os 配置两个github账号
1. 清空git全局配置的username和email
git config --global --unset user.name
git config --global --unset user.email
git config --list
可以查看是否清空了
2. 定义两个标识符,这两个标识符以后会被用来代替“github.com”来使用。
假设两个账号的邮箱地址分别是a@gmail.com
和b@gmail.com
,
本篇笔记中就分别定义两个标识符为 aaccount
和 baccount
。
(如果为了强调代替“github.com”,可以为“aaccount.github.com”和“baccount.github.com”。)
3. 为两个账户生成公钥和私钥
两个生成中只是邮箱和文件名不同,以第一个为例。
生成第一个:
ssh-keygen -t rsa -C "a@gmail.com" // 回车
会有如图输出,这里是需要指定秘钥的存储路径
比如指定为
/Users/xxx/.ssh/id_rsa_a
,这里推荐在 ~/.ssh 目录下。然后回车输入密码。
看见如下图的输出就是成功生成了公钥、私钥。
image.png
id_rsa_a 是私钥,id_rsa_a.pub 是公钥。
这便完成了一个账号的生成,相同的步骤,可以生成第二个账户的。
4. 将生成的密钥添加到ssh-agent信任列表
以第一个账号为例
ssh-add -K ~/.ssh/id_rsa_a // 这里指定自己的路径
// 返回这个就表示添加成功了
Identitiy added: ~/.ssh/id_rsa_a
相同步骤可以添加第二个账号的。
5. 将公钥添加到 github 网站上
先复制 .pub 文件中的内容,可以文本打开复制,也可以用命令,如下
pbcopy < ~/.ssh/id_rsa_a.pub // 这是复制第一个账号的公钥
github网站 → Settings → SSH and GPG keys → New SSH key,如下
image.png
title 随便写,key type默认如图不用修改,Key 中粘贴复制的公钥,Save。
6. 配置 config
文件
编辑 ~/.ssh/config
文件,如果没有就新建一个。内容如下:
这里就用到了前面定义的标识符。
Host aaccount
UseKeychain yes
Hostname github.com
IdentityFile ~/.ssh/id_rsa_a
User git
Host baccount
UseKeychain yes
Hostname github.com
IdentityFile ~/.ssh/id_rsa_b
User git
7. 测试连接
// 测试第一个账号
ssh -T git@aaccount
// 测试第二个账号
ssh -T git@aaccount
如果连接成功能看到以下输出:
Hi xxx! You've successfully authenticated.but GitHub does not provide shell acess
即使ssh config中的文件路径配置错误,ssh -T也会通过,所以路径一定要自己检查清楚。
8. 开心的使用吧
注意地址的变化,之前是
git clone git@github.com:xxx/yyyy.git
地址的 github.com
需要被自定义的标识符替换掉,比如第一个账户是 aaccount,那么命令就是
git clone git@aaccount:xxx/yyyy.git
clone到本地后,可以使用 git remote -v
查看远程地址,就是“git@aaccount:xxx/yyyy.git”
===========================
这是两篇参考的文章: 如果配置中遇到问题可以参考下面的文章
https://juejin.cn/post/7028907696845750280
https://learnku.com/articles/9980/mac-switching-multiple-github-accounts
===========================
9. 配置多账号之前已有项目的配置
如果是之前已经 clone 的项目需要重新指定 remote 地址以及需要配置项目的 email 和username。可以先试一下,如果不能使用再来改配置。
修改项目remote地址
git remote -v // 查看 remote 地址
git remote rm origin
git remote add origin git@aaccount:xxx/yyy.git // 这里是第一个账号为例
///////// 码字不易,求个赞 /////////
然后在每个项目中,执行:
git config user.email "xxx@xxx.com"
git config user.name "xxname"
为项目单独设置用户名和邮箱。
可以查看一下:
git config user.name
git config user.email
push 的话还是照常使用:git push origin master
===========================
这里参考了:https://hzsss.github.io/Mac-OS%E4%B8%8B%E9%85%8D%E7%BD%AE%E5%A4%9A%E4%B8%AAGitHub%E8%B4%A6%E5%8F%B7/
的最后一步
===========================