本地如何配置多个 GitHub/Gitee 账号?
阅读本文大概需要 5 分钟。
大家好,我是 polarisxu。
现在的开发,无论是日常工作还是参与开源,都离不开 Git。开源项目,大家通常使用 GitHub 或 Gitee,而工作中通常会自建 Git 服务,比如通过 GitLab、Gogs 等搭建。
为了方便使用,一般大家会配置 SSH keys,通过 ssh 协议 pull/push 仓库。
1、生成 ssh 密钥
首先,我们需要生成 ssh 密钥:(基于 mac,linux 类似,Windows 下找对应工具)
ssh-keygen -C "polaris@studygolang.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xuxinhua/.ssh/id_rsa):
出现的提示,使用默认值即可。命令执行完后,会生成 id_rsa 和 id_rsa.pub 文件,其中 id_rsa.pub 是公钥,拷贝其中的内容配置到 GitHub 或 GitLab 之类的网站。比如 GitHub 是这里:https://github.com/settings/ssh/new。
2、一个电脑两个不同网站账号
这是最常见的场景:一个业余号(github),一个工作号(比如自建 gitlab)。因为是不同网站,因此可以使用同一个邮箱。当然也可以是一个 github 账号,一个 gitee 账号,为了方便,以下使用 github 和 gitee。
在 ~/.ssh
目录下创建一个 config 文件,在其中添加如下内容:
host github
hostname github.com
Port 22
host gitee
hostname gitee.com
Port 22
这里没有指定 id_rsa,因为默认读取的就是它。
这样,本地使用 GitHub 还是 Gitee 完全没区别。
注意,需要使用 id_rsa.pub 分别在 GitHub 和 Gitee 添加 SSH Keys
当然,你也完全可以使用两个不同的账号,具体见下文。
3、一个电脑两个 GitHub 账号
因为两个 GitHub 账号,自然不能使用同一个 ssh 密钥,因此生成另外一个:
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa_gmail -C "polaris@gmail.com"
这会在 ~/.ssh
目录生成 id_rsa_gmail 和 id_rsa_gmail.pub 两个文件。
将 id_rsa.pub 和 id_rsa_gmail.pub 配置到对应的 GitHub 账号。然后跟上文一样,编辑 config 文件:
# github 账号:polaris@studygolang.com
host github
hostname github.com
Port 22
User git
IdentityFile ~/.ssh/id_rsa
# github 账号:polaris@gmail.com
host gmail-github
hostname github.com
Port 22
User git
IdentityFile ~/.ssh/id_rsa_gmail
config 是 ssh 的配置,详细信息可以参考:https://daemon369.github.io/ssh/2015/03/21/using-ssh-config-file。
针对以上场景,在具体使用时,我们需要注意以下几点:
默认会使用第一个账号,要使用第二个账号,需要设置该项目自己的 user.email 和 user.name git clone 时,第二个账号,地址得是类似这样的: git@gmail-github.com:studygolang/studygolang.git
如果有问题,可以执行以下两个命令验证:(记得替换为你自己的配置)
$ ssh-add ~/.ssh/id_rsa_gmail
ssh -T git@gmail-github.com
4、总结
生活一个号,工作一个号。如果你没有很好的区分,可以试试本文的方法,更愉快的 Coding!
我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。
坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio