近期有新的电脑需要从 0 到 1 配置,遇到需要配置两个 GitHub 需求,比如一个是为公司使用,另外一个是个人使用,平常搜到的多是公司内部用 gitlab 之类的,这次做一次总结,下回又有新电脑了方便快速配置。

ssh-key

用公司邮箱和个人邮箱分别生成 ssh-key:

1
2
#company
ssh-keygen -t rsa -f ~/.ssh/id_rsa_conpany -C "xxx@gmail.com"
1
2
#personal
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "xxx@163.com"

ssh 配置

下面部分内容也许仅本人能立即明白,最初是打算给个人做个备份的,如果内容觉得欠缺可留言我会补充。

1
open ~/.ssh

打开 ssh 文件夹,会发现里面有 config(没有的话新建一个即可,在 ssh 下使用 touch config 命令),配置如下内容:

1
2
3
4
5
6
7
8
9
10
11
#company
Host company
Hostname github.com
IdentityFile ~/.ssh/id_rsa_company
User company

#personal
Host github
Hostname github.com
IdentityFile ~/.ssh/id_rsa_github
User github

上述省略了为多个 git 账户生成 ssh-key 的过程,详细方法可阅读下文中的「参考」部分配置多个 git 账号。

config 文件里我们就配置了公司和个人的 github 账号,至于 IdentityFile 是我们生成 ssh-key 过程中自定义的名称,作区分使用。

以上配置是将生成的私钥绑定身份,比如 id_rsa_company 作为公司里的身份这样。

添加信任列表

分别添加到 ssh-agent 信任列表,如下:

1
2
#company
ssh-add ~/.ssh/id_rsa_company
1
2
#personal
ssh-add ~/.ssh/id_rsa_github

添加公钥

完成上述配置后,我们需要将公钥和 github 连接起来:

1
2
3
4
5
# 首先复制公司配置的公钥后连接公司 github
pbcopy < ~/.ssh/id_rsa_company.pub

# 再复制个人公钥后连接个人 github
pbcopy < ~/.ssh/id_rsa_github.pub

上述连接操作是在浏览器登录不同的 GitHub 账号(也就是不同的邮箱账号),如下图所示,new 一个然后填入刚刚复制的公钥字符进去即可。

测试连接

上述配置顺利的话,接着就是来 ssh -T --- 来测试一下联通了否,如下代码:

1
2
ssh -T git@company
ssh -T git@github

上述 git@「xxx」中的 xxx 即为我们 config 文件里定义的 host,自行替换即可。

连接成功你应该会受到 successfully 相关的描述内容,祝你一切配置顺利!

1
Hi xxx! You've successfully authenticated.but GitHub does not provide shell acess

git clone

上述配置没啥问题后,就可以去推拉代码了,但这里有一点要注意一下,因为多账号都是 GitHub 的,我们使用 ssh 时需要加上 host 区分一下,例如我自己的 chodocs

如上,我们 git clone 的时候需要加上前缀:

1
2
# 个人 github
git clone git@github:chodocs/chodocs.git

如果是公司项目的话,假如项目名字是 nextjs-web,那么配置如下:

1
2
# company github
git clone git@company:nextjs-web/nextjs-web.git

以上就是全部内容了,希望能够帮助到你!

参考