一台电脑上的git同时使用两个github账户

需求:

有多个github账号时,想在git上同时使用,两者互不干扰。

解决方案

一、生成两个SSH key

这里以两个账号的配置为例,多于两个账号的情况配置和两个账号一样,所以学会了两个账号怎么配置了,再多账号也是一样可以顺利配置成功的。

根据你的Github账号,分别生成对应的key。为了方便举例,这里使用“one”和“two”两个账户。下同。

生成SSH key的具体命令如下:

ssh-keygen -t rsa -C "one@gmail.com"
ssh-keygen -t rsa -C "two@gmail.com"

ssh-keygen是linux命令,可以让两个机器之间使用ssh而不需要用户名和密码。

运行上面命令需要注意几点:

1.运行命令后不要一路回车,分别在第一次对话出现“Enter file in which to save the key”的时候输入文件名(此处文件名为id_rsa和id_rsa_two),第二次会话是让你输密码,一般回车密码设置为空就好了。第三次再次确认密码,同样回车,这样会生成如下图的文件:
在这里插入图片描述
两份包含私钥和公钥的4个文件,后缀为.pub的文件为公钥文件。

2.linux或mac用户一定要在~/.ssh路径下运行命令行,不然生成的文件不会出现在当前目录,Windows用户则在“C:\Users\用户名\.ssh”目录下运行命令行。

二、创建config文件并配置

继续在.ssh目录下创建config文件,在config文件中添加以下内容:

# one(one@gmail.com)
Host one.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_one
User one
    
# two(two@gmail.com)
Host two.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two
User two

这里说明一下配置各字段的含义

Host myhost(这里是自定义的host简称,以后连接远程服务器就可以用命令ssh myhost)
HostName 主机名可用ip也可以是域名(如:github.com或者bitbucket.org)
Port 服务器open-ssh端口(默认:22,默认时一般不写此行)
PreferredAuthentications   配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
IdentityFile 证书文件路径(如~/.ssh/id_rsa_*)
User 登录用户名(如:git)

每个账号单独配置一个Host,每个Host要取一个别名,一般为每个Host主要配置HostName和IdentityFile两个属性,配置完保存即可。

Host的名字可以自定义名字,不过这个会影响git相关命令,例如:Host mygithub 这样定义的话,使用命令git clone git@mygithub:PopFisher/AndroidRotateAnim.git,git@后面紧跟的名字改为mygithub

三、部署SSH key

这里以配置github为例,分别登陆两个github账号,进入Settings –> SSH and GPG keys,点击"new SSH key", 把下面两个公钥(.pub文件)的内容分别添加到相应的github账号中,其中Title为自定义的名字,Key为.pub文件的内容,最后点击“Add SSH key”即可。
在这里插入图片描述
四、远程测试

输入以下命令进行测试

ssh -T git@one.github.com
ssh -T git@two.github.com

此处"one.github.com"和“two.github.com”为config文件中你配置的Host名字

运行命令后如果出现“Hi xxxx! You’ve successfully authenticated, but GitHub does not provide shell access.”,其中“xxxx”为你配置的User名字,这时恭喜你,配置成功了~

五、使用

1、clone代码到本地

(1)原来的写法为:

git clone git@github.com: one的用户名/learngit.git

(2)现在的写法为:

git clone git@one.github.com: one的用户名/learngit.git
git clone git@two.github.com: two的用户名/learngit.git

2、为仓库设置局部的用户名和邮箱:

# 取消全局 用户名/邮箱 配置
git config --global --unset user.name
git config --global --unset user.email
    
# 单独为每个repo设置 用户名/邮箱
git config user.name "one_name" ; git config user.email "one_email"
git config user.name "two_name" ; git config user.email "two_email"

3、上述都成功后,会发现钥匙会由灰变绿。
在这里插入图片描述

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值