同一主机设置多个密钥与不同github账号关联,或同一主机同一密钥分别关联github和gitlab

Posted 猫猫哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同一主机设置多个密钥与不同github账号关联,或同一主机同一密钥分别关联github和gitlab相关的知识,希望对你有一定的参考价值。

前言

github一把公钥只能用于一个github账户,如果想在同一主机上给两个属于不同账户的仓库提交时,必须在本地创建两对公/私钥匙,分别把两把公钥给两个帐号。

或者有时候,你公司内部使用的gitlab,同时你个人又有github,你想用同一个公钥将仓库分别提交到github和gitlab。

多个密钥管理多个github/gitlab

1 生成密钥

生成第一把公钥:
ssh-keygen -t rsa -C "[email protected]"
# 设置名称为id_rsa_kobe
Enter file in which to save the key ((/home/xxxx/.ssh/id_rsa)): id_rsa_kobe
#添加到SSH agent中
ssh-add id_rsa_kobe

制造第二把公钥:
ssh-keygen -t rsa -C "[email protected]"
# 设置名称为id_rsa_jordan
Enter file in which to save the key ((/home/xxxx/.ssh/id_rsa)): id_rsa_jordan

#添加到SSH agent中
ssh-add id_rsa_jordan

2 将公钥添加到你要提交的github和gitlab账户上

3 配置ssh

# 在.ssh目录下配置config文件:
Host kobe
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_kobe
Host jordan
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_jordan

4 测试,如下表示OK

ssh -T kobe
Hi kobe! You've successfully authenticated, but GitHub does not provide shel l access.
ssh -T ranpop
Hi jordan! You've successfully authenticated, but GitHub does not provide shel l access.

5 用Host指定使用哪个公钥操作远程仓库

对于kobe帐号下的仓库:
git clone kobe:githubname/repository.git
(原地址是:[email protected]:githubname/repository.git,替换后应该是:kobe:githubname/repository.git)
对于ranpop帐号下的仓库:
git clone jordan::githubname/repository.git
(原地址是:[email protected]:githubname/repository.git,替换后应该是:jordan:githubname/repository.git)

6 如果本地已有仓库

# 如果已经使用原地址克隆过了,可以使用如下命令修改
git remote set-url origin kobe:githubname/repository.git
# 如果是本地新建的仓库,可以使用如下命令添加
git remote add origin jordan:githubname/repository.git

同一密钥分别关联github和gitlab

1 生成密钥方法同上

2 将公钥添加到你要提交的github和gitlab账户上

3 配置ssh

# 在.ssh目录下配置config文件:
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_kobe
Host gitlab
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_kobe

4 测试,如下表示OK

ssh -T github
Hi kobe! You've successfully authenticated, but GitHub does not provide shel l access.
ssh -T gitlab
Welcome to GitLab, @kobe!

5 本地同一仓库分别关联github和gitlab

git remote add github github:githubname/repository.git
git remote add gitlab gitlab:githubname/repository.git

6 可以使用github gitlab分别对不同上游进行操作

# 推送master分支到github
git push github master
# 推送master分支到gitlab
git push gitlab master

以上是关于同一主机设置多个密钥与不同github账号关联,或同一主机同一密钥分别关联github和gitlab的主要内容,如果未能解决你的问题,请参考以下文章

同一个电脑使用多份密钥文件绑定多个帐号

Github 多账号配置

markdown GIT中的多账号如何处理?1。同一台电脑多个GIT中(不同网站的)账号2.同一台电脑多个GIT中(同一个网站的比如github上的)多个账号

Git使用

为不同的 GitHub 帐户使用多个 SSH 密钥

如何防止亚马逊账户关联