git多账号配置 SSH

问题描述

公司要求项目的git账号必须使用公司邮箱,而我平时写的一些小demo肯定是用的自己的邮箱绑定的账号,这样就出现了多账号的问题。

后来不知怎么了,平时使用SourceTree的时候,时不时的就让我输入个密码。。。而且我有个自己的demo在拉取时SourceTree却总是弹出我的公司账号让我输入密码。。。

因此我决定使用ssh方式,从此告别密码输入!


以oschina的代码托管平台为例,我的两个账号,工作账号:Tony(关联公司邮箱),个人账号:YLP(关联qq邮箱)


查看公钥

  • 打开.ssh文件夹
$ cd ~/.ssh/
  • 查看.ssh文件夹下的文件,会发现里边应该有两个id_rsa开头的文件,private key和public key(私钥和公钥)
$ ls
  • 如果之前没用过并且嫌乱的话可以先删掉
$ rm id_rsa*


创建新的公钥

1)创建公司账号的新key
  • 生成新key,把ylp@xxx.com替换成自己的邮箱
$ ssh-keygen -t rsa -C"ylp@xxx.com"
  • 这时会让你输入将要新生成的key的名称,我输入了id_rsa_work,然后回车


    image.png
  • 后边是两次提示输入密码,都直接回车就行

  • 这时就会出现创建成功的提示了

image.png
  • 再次ls查看一下文件会发现多了两个文件:id_rsa_work和id_rsa_work.pub
    .pub文件就是公钥,一会将要用到

  • 执行ssh-agent让ssh识别新的私钥

$ ssh-add id_rsa_work
2)创建个人账号的新key

重复上面1)中的所有步骤,不过把key的名字换一下即可,我输入的是id_rsa_me

执行完后,现在公钥就创建好了,可以进行下一步操作了~

关联公钥

我们需要把创建好的公钥跟oschina平台中的项目进行关联

  • 打开id_rsa_work.pub文件,并cmd+v里边的所有内容
$ vim id_rsa_work.pub

现在我们添加的是用户 ssh key,而不是项目ssh key,两者的区别就是项目下的公钥仅能拉取项目,而用户的key具有推送和拉取的权限。

克隆项目

现在就可以通过ssh链接来克隆公司项目的代码了

image.png
image.png

多账号配置

按照刚才对Tony(公司账号)关联公钥的操作,登录oschina的YLP(个人账号)重复操作,去克隆YLP账号下的一个项目时,会发现SourceTree提示这是一个无效的源路径/URL

这是因为克隆YLP下的项目时,git是拿默认的id_rsa_work.pub文件里面的key去对比的,这肯定是有问题的嘛,因为YLP账号并没有添加这个key。因此我们需要配置一下来告诉git什么时候用哪个key

config文件配置

在.ssh文件夹下有个config文件,用vim打开它

$ vim config

对其配置如下:

#oschina公司工作账号
Host gitee.com
HostName git.oschina.net
User coder_Ylp
IdentityFile ~/.ssh/id_rsa_work

#oschina个人开发账号
Host giteeYLP.com
HostName git.oschina.net
User splsylp
IdentityFile ~/.ssh/id_rsa_me

解释一下配置信息:

  • Host 是你远程仓库的地址
  • HostName 是远程仓库的名称
  • Port 端口号,如果有做转发需要在这里填写端口号,没有就不必要填
  • User 用户名称
  • IdentityFile 识别key的文件
其实Host 可随便定义,类似一个标识

比如我oschina上的项目,它的ssh地址git@gitee.com: workTest.git,所以公司账号下的Host我写的是gitee.com

那么我oschina的个人账号就不能再写gitee.com,否则git校验key的时候还是区分不开的,因此我把它改为了giteeYLP.com

注意
1)项目地址更改

因为host改了,相应的我们在克隆项目的时候,ssh的地址也是需要改的,比如我YLP账号下的一个项目ssh地址是git@gitee.com:meTest.git,那么克隆的时候我需要把它改为:git@giteeYLP.com:meTest.git,这样就不再提示这是一个无效的源路径/URL了,成功克隆

2)校验

我不明白为什么oschina官方文档写的是输入ssh -T git@git.oschina.net进行校验,因为我所有的项目都是git@gitee.com开头的,因此才有了上述的配置

因此我Tony账号是这么校验的:

$ ssh -T git@gitee.com

YLP账号是写的giteeYLP.com

$ ssh -T git@giteeYLP.com

终端都分别提示了:
Welcome to Git@OSC, xxx
说明校验通过,但是如果提示Permission denied (publickey).则说明校验失败

多个平台

前边说的是同一个平台下的多个账号,那么对于多个平台也是一个道理

比如我想在github上进行配置,那么我可以再创建一个新的邮箱生成key,一般也不会用那么多的邮箱和账号。。。所以我还是用我刚才的id_rsa_me.pub

#github个人开发账号
Host github.com
HostName github.com
User Tony
IdentityFile ~/.ssh/id_rsa_me
  • 验证SSH key
$ ssh -T git@github.com

终端输出如下说明成功了:

Hi splsylp! You've successfully authenticated, but GitHub does not provide shell access.

刷新https://github.com/settings/keys这个页面,会发现秘钥的小钥匙图标由灰色变成绿色了,说明生效了~

这时候就可以直接把github上的项目也通过ssh进行pull、push了。。。



以上就是我实践总结的配置方法,亲测没有问题,如有问题或者更好的方法欢迎指正交流~

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

推荐阅读更多精彩内容

  • 之所以写这篇文章是为了解决git 提交不成功,同时做个记录方便以后遇到同样的问题可以顺利解决。网上教程有很多,此处...
    ColaBean阅读 413评论 0 1
  • 简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快、最简...
    JonesCxy阅读 983评论 0 3
  • 几波微笑, 在空中开漾, 与那春日的清阳, 次序相撞 荡动这芽苞的心房 于是,绽放
    _涓娟阅读 184评论 1 1
  • 兴起养宠物的念头,或许始自《我们家的猫》中那句“抱着花枝打秋千”,小时奶奶家满园花色,却从未进过猫猫狗狗,每到春夏...
    清水泛涟漪阅读 308评论 0 1
  • 我自己到底是一个什么样的存在?悲伤、痛苦、消极、甚而轻生的想法能代表最终以现在的姿态站在人前的我吗?我看到了自己的...
    五月海子阅读 236评论 0 0