一个客户端设置多个GitHub账号

最近想要使用自己的GitHub搭建Hexo博客,同时还要使用工作的GitHub开发项目,所以在网上找寻了一些文章,在此将自己的搭建过程记录一下。

前期工作

两个GitHub账号(假设两个账号为one,two)
取消Git全局设置

$git config --global --unset user.name
$git config --global --unset user.email

SSH配置

生成id_rsa私钥,id_rsa.pub公钥。one可以直接回车,默认生成 id_rsa 和 id_rsa.pub 。

$ssh-keygen -t rsa -C "one@xx.com"

添加two会出现提示输入文件名,输入与默认配置不一样的文件名,如:id_rsa_two。

$cd ~/.ssh
$ssh-keygen -t rsa -C "two@126.com"  #  之后会提示输入文件名

GitHub添加公钥 id_rsa.pub 、 id_rsa_two.pub,分别登陆one,two的账号,在 Account Settings 的 SSH Keys 里,点 Add SSH Keys ,将公钥(.pub文件)中的内容粘贴到 Key 中,并输入 Title。
添加 ssh Key

$ssh-add ~/.ssh/id_rsa
$ssh-add ~/.ssh/id_rsa_two

可以在添加前使用下面命令删除所有的 key

$ssh-add -D

最后可以通过下面命令,查看 key 的设置

$ssh-add -l

修改ssh config文件

$cd ~/.ssh/
$touch config

打开 .ssh 文件夹下的 config 文件,进行配置

#  default
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_two
  • 这里必须采用这样的方式设置,否则 push 时会出现以下错误:

ERROR: Permission to two/two.github.com.git denied to one.

简单分析下原因,我们可以发现 ssh 客户端是通过类似:

git@github.com:one/one.github.com.git

这样的 Git 地址中的 User 和 Host 来识别使用哪个本地私钥的。
很明显,如果 User 和 Host 始终为 git 和 github.com,那么就只能使用一个私钥。
所以需要上面的方式配置,每个账号使用了自己的 Host,每个 Host 的域名做 CNAME 解析到 github.com,这样 ssh 在连接时就可以区别不同的账号了。

$ssh -T git@github.com        #  测试one ssh连接
# Hi ***! You've successfully authenticated, but GitHub does not provide shell access.
$ssh -T git@two.github.com    #  测试two ssh连接
# Hi ***! You've successfully authenticated, but GitHub does not provide shell access.

但是这样还没有完,下面还有关联的设置。

在Git项目中配置账号关联

可以用 git init 或者 git clone 创建本地项目
分别在one和two的git项目目录下,使用下面的命令设置名字和邮箱

$git config user.name "__name__"            #  __name__ 例如 one
$git config user.email "__email__"          #  __email__ 例如 one@126.com

注意:由于我不知道Hexo怎样配置 局部的config,所以,我将two的config使用全局,而工作目录配置局部。

$git config --global user.name "__name__"            #  __name__ 例如 two
$git config --global user.email "__email__"          #  __email__ 例如 two@126.com

查看git项目的配置

$git config --list

查看 one 的 remote.origin.url=git@github.com:one/one.github.com.git
查看 two 的 remote.origin.url=git@github.com:two/two.github.com.git
由于 one 使用的是默认的 Host ,所以不需要修改,但是 two 使用的是 two.github.com ,则需要进行修改

$git remote rm origin
$git remote add origin git@two.github.com:two/two.github.com.git

我在Hexo中的配置(使用two账号)

deploy:
    type: git
    repo: git@two.github.com:two/two.github.io.git
    branch: master

上传更改

上面所有的设置无误后,可以修改代码,然后上传了。

$git add -A
$git commit -m "your comments"
$git push

如果遇到warning

warning: push.default is unset; its implicit value is changing in Git 2.0 from ‘matching’ to ‘simple’. To squelch this messageand maintain the current behavior after the default changes, use…

推荐使用

git config --global push.default simple

好了,这就是今天的分享,最近也会持续更新git相关系列,谢谢大家的支持

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容