代码改变世界

同一电脑登录多个github账号

2019-12-25 21:20  tony4geek  阅读(664)  评论(0编辑  收藏  举报

使用场景

不知道大家有没有遇到这种场景,在公司连着公司gitlab仓库,你自己本人也有个github仓库。我就遇到这种问题,
在一台电脑上同时向gitlab、github分别提交代码。一台电脑可以生成多个sshkey,然后根据sshkey的不同来区分不同的仓库。
也就是一个sshkey 是唯一的,只要保证这个唯一你就可以愉快的提交代码了。

  • 同一用户提交,比如gitlab 和github 用同一个sshkey,只用tonyOffice生成一个sshkey
  • 不同用户提交,比如gitlab 用github 用不同的sshkey,一个tonyOffice生成,一个用tonyHome生成

第一种举例用tonyOffice生成sshkey

比如我要连接github,本来我的电脑连接的是公司的gitlab的仓库。
执行如下命令ssh-keygen -t rsa -C "tonyOffice", 这个tonyOffice是别名你可以随便取,生成好之后去cd /Users/tonyyang/.ssh,找到对应的目录。

查看cat id_rsa.pub
将密钥拷贝好。

将密钥粘贴到github的sshkey栏中

此刻你去你自己的github中拷贝需要下载的仓库,拷贝以SSH key方式的路径。

这个时候你idea 里可以通过git下载远程的仓库了。

HTTPS 方式连接

通过https的方式更加容易,直接登录输入你的github账号名密码。就关联到你的github。

这个时候你idea 里可以通过git下载远程的仓库了。

以上 的提交方式都是以同一个用户名登录到github和gitlub。

第二种 用不同账户生成不同的sshkey来连接

如果需要以不同的用户名登录到对应仓库,则需要生成多个SSH KEY。

在 .ssh 文件夹下新建 config 文件并编辑,不同密钥对应不同的git账号。

# 
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# two                                                                           
Host two.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2

将生成的id_rsa.pub 和id_rsa_2.pub 拷贝到对应仓库的SSH KEY。

测试SSH连接

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

如果测试连接成功,则已经关联成功了 。

第三种HTTPS 方式连接

通过https的方式更加容易,直接登录输入你的github账号名密码。就关联到你的github。

ssh原理以及与https的区别