前言
在日常开发中,我们一定会遇到使用多个Git帐号或者平台的情况。比如自己造轮子的github,干私活能有免费私有仓库gitee,工作中公司搭建的私有git平台等等。那么希望在一台设备上提交不同平台的代码,我们就一定要知道如何配置SSH Key来实现验证流程(其实也不一定,使用一些成熟的可视化代码管理工具如 source tree也是可以的)。
配置SSH Key(github为🌰)
打开你的终端,到 .ssh
目录
$ cd ~/.ssh
常规方法生成一个 SSH Key
$ ssh-keygen -t rsa -C “your@email.com“
自定义生成key的名字
名字定义要清晰,因为你的设备下可能会有多个rsa文件。
密码的设置
看自己喜好
配置github或者其他平台
复制公钥
$ pbcopy < ~/.ssh/test_rsa.pub
到github或者其他平台的设置项中,找到SSH and GPG keys
选项执行 New SSH key的操作。
测试
键入 ssh -T git@github.com
,一般能够看到类似下面的输出。
$ ssh -T git@github.com
Hi [UserName]! You’ve successfully authenticated, but GitHub does not provide shell access.
如果你非常不幸,没能看到这样的输出,你可以直接跳到下一环节。或者执行下面一段命令将新ssh-key添加到ssh agent中,再执行测试命令。
$ ssh-add ~/.ssh/test_rsa
配置多个SSH-Key
为了将不同帐号的git服务器与对应的ssh-key关联,我们需要新增一个config文件。
在 ~/.ssh
路径下键入
$ vim config
然后键入类似下方的配置
1 | # company git service |
然后保存退出。
两个Github帐号的冲突
从上面的config文件中,我们可以看到有两个HostName github.com
相同的配置,但是用户不一样(你有两个Github帐号或者这台电脑两个程序员共享[奸笑])。
验证第二个Github的帐号
$ ssh -T git@olddaddy.github.com
Hi OldDaddy0! You’ve successfully authenticated, but GitHub does not provide shell access.
所以我们通过git clone repository的时候,如果是使用 SSH 地址,则需要使用配置如下:
git clone git@olddaddy.github.com:OldDaddy0/OldDaddy0.github.io.git
–
到目前为止,你可以愉快的玩耍Git了。当然,不是每一个人都能这么顺利的,总会有到各种各样的问题。对于异常情况这里不做一一介绍,欢迎一起讨论学习。