同一台电脑上使用两个 github 账号

文章目录


使用需求

通常情况下,我们会有两个 github 账号:一个是公司的,另一个是私人的。由于 github 是使用 SSH key 的 fingerprint (对应的公钥id_rsa_pub)来判定你是哪个账户,而不是通过用户名,如果是在多台电脑上使用一个账号,可以为该账号添加多个 SSH key,如果是一台电脑使用多个账号,则分别生成多个 SSH key 添加到对应的账户即可。所以本文要实现的是公号和私号在 git 上同时使用,两者互不干扰。


步骤一:生成多个 SSH key

为了举例方便,这里使用 “one” 和 “two” 两个账户。
使用cd ~/.ssh切换工作目录,然后使用如下命令生成两个钥匙,中间一路回车。

ssh-keygen -t rsa -f ~/.ssh/id_rsa_one -C "one@xxx.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa_two -C "two@xxx.com"

这样会在~/.ssh目录下生成四个文件:

id_rsa.one      //账号 one 的私钥
id_rsa.one.pub  //账号 one 的公钥
id_rsa.two
id_rsa.two.pub
步骤二:创建配置文件 config

~/.ssh目录下新建 config 文件,令不同 Host 实际映射到同一 HostName,但密钥文件不同。

$ touch config  // 创建 config
$ vim config    // 编辑 config
 
# 加上以下内容
# one (first account)
Host one.github.com
HostName github.com
PreferredAuthentications publickey
User one
IdentityFile ~/.ssh/id_rsa_one

# two(second account) 
Host two.github.com
HostName github.com
PreferredAuthentications publickey
User two
IdentityFile ~/.ssh/id_rsa_two


步骤三:添加 SSH key 及 测试

分别登陆两个 github 账号,在 Settings —> SSH and GPG keys 中,点击 “new SSH key”,把 “id_rsa.one.pub” 和 "id_rsa.two.pub"这两个公钥的内容分别添加到相应的账号中。
为了确认我们可以通过 SSH 连接 github,可通过输入下面命令来验证

$ssh -T git@one.github.com

如果看到下面信息,就说明连接正常。

Hi one! You've successfully authenticated, but GitHub does not provide shell access.

该步骤详细内容可以参考教程:使用 SSH 连接 github


步骤四:用户名和邮箱配置

注意:因为一台电脑上配置了多个 github 账号,所以就不能再配置全局的用户名和邮箱了,而是在不同的仓库下,如果需要连接不同的 git 账号,配置相应的局部用户名和邮箱即可,如果之前配置过全局的用户名和邮箱,需要取消配置。

# 取消全局 用户名/邮箱 配置
git config --global --unset user.name
git config --global --unset user.email

# 设置局部 用户名/邮箱 配置
git config user.name "xxxx"
git config user.email "xxxx@xx.com"

步骤五:使用 git

git 的使用一般是从其他仓库直接 clone 或本地新建,注意配置用户名和邮箱。

1、clone 到本地

  • 原来写法
$ git clone git@github.com: 用户名/learngit.git
  • 现在写法
$ git clone git@one.github.com: one的用户名/learngit.git
$ git clone git@two.github.com: two的用户名/learngit.git

如果有需要重建 origin,可以执行下面操作

$git remote rm origin //清空原有的
$git remote add origin git@one.github.com:one/test.git

2、本地新建仓库

# 建立本地仓库
$git init
...//其他操作
$git commit -m "first commit"

# push 到 github上去
$ git remote add origin git@one.github.com:one/test.git
$ git push origin master

这样就实现了一台电脑管理两个 github 账号,接下来可以进行 git 的其他操作。

参考文章

1、https://www.cnblogs.com/xjnotxj/p/5845574.html
2、https://www.jianshu.com/p/3fc93c16ad2d
3、https://blog.csdn.net/mq2856992713/article/details/62090841
4、https://blog.csdn.net/wolfking0608/article/details/78512171

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的贝塔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值