本地如何配置多个 GitHub/Gitee 账号?

polarisxu

共 2109字,需浏览 5分钟

 ·

2022-01-22 10:27

阅读本文大概需要 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


浏览 71
点赞
1评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
全部评论
QS220966a9de7ba74e12024-07-31 14:50
“git clone 时,第二个账号,地址得是类似这样的:git@gmail-github.com:studygolang/studygolang.git”这里的地址应该是“gmail-github:studygolang/studygolang.git”
点赞回复
推荐
点赞
1评论
收藏
分享

手机扫一扫分享

分享
举报