Github多账号登陆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Github多账号登陆相关的知识,希望对你有一定的参考价值。

参考技术A 因为想把公司和个人账号分开,在Github上建了两个账号,结果发现在一台机器上要同时使用两个账号还需要一些额外配置,这里记录下具体配置步骤。

首先两个账号的ssh key登陆要配置好,这里就不记录,具体可以参考 官方文档 或者这个issue文章里最前面的介绍 配置多个git账号 。

配置多个git账号 这里面提供的多账号登陆的配置其实基本上全了,但我配完后遇到的一个问题是账号并没有根据指定域名来切换认证的key信息,导致账号权限错误。搜索一番后才发现少了 IdentitiesOnly yes 这个配置。最终使用的完整 ~/.ssh/config 配置文件内容示例如下:

根据 StackOverflow上一个问题的解答 了解到IdentityFile实际上只是将用户指定的key文件添加到SSH agent里(默认的key比如版本1使用的~/.ssh/identity和版本2使用的 ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_rsa)。而 IdentitiesOnly yes 阻止使用默认的id,否则如果有id文件匹配默认的名字,他们将会在ssh认证过程中先被尝试使用。

配置好后可以通过 ssh -T git@s.github.com 来验证输出的账户信息是否和User中指定的用户名一致。
另外由于user1使用的Host变成了 s.github.com ,需要修改该用户项目的remote配置:

多账号 SSH 管理多个 GitHub 项目(建议收藏)

我又双叒叕来迟了,这篇文章介绍如何用 SSH 管理多个 GitHub 项目

0

SSH 连接


一开始我是用账号密码登陆管理 GitHub 项目的,但是推送代码时 GitHub 要保证推送代码的用户是否合法,时不时就要重新输入密码确认,说实在的,密码那么多,时间一久,真记不得!(我可是连银行密码都忘过好几次了)

多账号 SSH 管理多个 GitHub 项目(建议收藏)


虽然我都用 Google 浏览器保存了,但着实懒得翻,太麻烦,我就不信你们都能记得住那么多密码


后来就改用了 SSH 管理,不得不说,舒(su)服。


SSH 是一种传输模式,具体的就不细说了。


我们在电脑上生成一个唯一的 SSH 公钥和私钥,把公钥上传 GitHub上面,当你推送的时候,Git 就会检测本地的私钥是否跟 GitHub 上的公钥配对,匹配成功才允许 push、pull


本地的私钥别人无法截获,SSH 传输可以保证几乎每次传输都是安全的,虽然还是有攻击方法,但对我们平时 push、pull 代码几乎是没有影响的。


1

生成 SSH


首先进入 C 盘下的 C:UsersAdministrator.ssh 目录,打开 Git Bash,用 cmd 进入这个目录也行。

多账号 SSH 管理多个 GitHub 项目(建议收藏)

ssh-keygen -t rsa -C "你的邮箱"

输入上面的命令创建第一个 SSH Key,然后无脑回车显示如下就是成功创建了:

多账号 SSH 管理多个 GitHub 项目(建议收藏)

此时目录下多了这两个文件:

多账号 SSH 管理多个 GitHub 项目(建议收藏)

复制 eid_rsa.pub 文件的内容,就是一大长串的字符,复制好之后打开我们的 GitHub。

多账号 SSH 管理多个 GitHub 项目(建议收藏)

找到想要管理项目的 Settings => Deploy => Add deploy key:

多账号 SSH 管理多个 GitHub 项目(建议收藏)

取好名字后把复制的公钥粘贴到大的文本框中,下面的允许读写勾上,点击绿色按钮,我们就成功给项目添加好了公钥。


2

创建第二个 SSH Key


在使用 Git 的过程中,一开始可能只需要管理一个项目,但总会开始第二个项目的,这时候我们就需要创建第二个 SSH Key 了。


操作和第一次类似,进入 C 盘下的 C:UsersAdministrator.ssh 目录,打开 Git Bash。


运行 ssh-keygen -t rsa -C "你的邮箱" ,不过现在不能一路回车了。

多账号 SSH 管理多个 GitHub 项目(建议收藏)

我们需要给第二个 SSH Key 起一个别名,否则就会覆盖掉第一次的 SSH Key,取好别名之后再一路回车。


实际上,第一次创建 SSH Key 的时候我们最好就起个别名做区分,然后就和第一次一样把 .pub 后缀文件的内容复制到 GitHub 项目。


3

第一个项目 SSH 上传


打开我们的 GitHub 项目:

多账号 SSH 管理多个 GitHub 项目(建议收藏)

多账号 SSH 管理多个 GitHub 项目(建议收藏)

git push "git@github.com:msunh1997/Avatar.git" mastergit pull "git@github.com:msunh1997/Avatar.git" master

麻麻再也不用担心我忘记 GitHub 的密码了~


4

后续的 SSH 上传


第一个比较简单,多个项目使用 SSH 就要多进行几个步骤了。


同样,进入 C 盘下的 C:UsersAdministrator.ssh 目录,找到 config 文件,用编辑器打开,没有的话就新建一个,默认内容是这样的:

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

这是 SSH 的配置文件,使用 SSH 传输时会从上至下读取 config 的内容,在每个 Host 下寻找对应的私钥。


Host tx HostName github.com User git IdentityFile ~/.ssh/tx

git@github.com:msunh1997/Avatar.git

现在就变成了:tx:msunh1997/Avatar.git 


最后一个步骤,打开 Git Bash,执行这两条命令把新的私钥添加到 SSH agent 中。

ssh-agent bashssh-add ~/.ssh/tx

ssh -T git@tx 验证一下,大功告成!

多账号 SSH 管理多个 GitHub 项目(建议收藏)

配合git remote add tx "tx:msunh1997/Avatar.git",命令就变得更简单了,完美!

git push tx mastergit pull tx master


5

暂时没了


关于 GitHub 的使用写到这里先告一段落了,加上这篇共写了 3 篇,写的都是一些个人的使用经验,可能有些地方描述的不太准确或者有其他的方法,遇到问题解决问题就是了。


下一篇关于 GitHub 的文章等到我对 GitHub 有更多的认识和使用经验再总结。


多踩坑,分享即学习,我是玖柒后,奥利给~



推荐阅读:



 

多账号 SSH 管理多个 GitHub 项目(建议收藏)

“就等你点在看了,感谢转发关注


能帮我开灯吗?

以上是关于Github多账号登陆的主要内容,如果未能解决你的问题,请参考以下文章

如何设计 QQ微信微博Github 等第三方账号登陆 ?(附表设计)

多账号 SSH 管理多个 GitHub 项目(建议收藏)

django-allauth添加github账号访问入口

Laravel实现第三方登陆(演示github登陆)

图解GitHub基本操作

图解GitHub基本操作