@
在我们的日常开发中,可能要用到多个账号,公司开发gitlab
,国外开源github
,国内开源gitee
。这种多环境的情况下,我们就需要生成和配置多个SSH-Key。
本文基于Win10操作系统,需要安装好Git:Windows环境下Git安装和配置
1、清除git全局配置
如果在此之前配置过全局用户名和邮箱:
$ git config --global user.name "test"
$ git config --global user.email test@qq.com
可以通过git config --global --list
来查看自己的全局配置。
由于是对应不同的开发场景,我们不同环境的提交可能是不同的用户名,所以先清除这两个配置。
$ git config --global --unset user.name "test"
$ git config --global --unset user.email test@qq.com
清楚掉全局配置以后,提交代码还需要我们的用户名、邮箱怎么办?
在我们的工作目录(项目)里配置即可:
$ git config user.name ‘test‘
$ git config user.email test@qq.com
2、SSH keys
打开 git bash。
- 2.1、生成github用的 SSH key
$ ssh-keygen -t rsa -C ‘github邮箱号‘ -f ~/.ssh/id_rsa_github
- 2.2、生成gitee用的 SSH key
$ ssh-keygen -t rsa -C ‘gitee邮箱号‘ -f ~/.ssh/id_rsa_gitee
在Windos的User Home目录(C:\Users\用户名\.ssh
)下,会生成对应的文件。
- 2.3、分别登录
gitee
、github
添加SSH KEY
这里以gitee为例,github和gitee类似,这里就不再演示。
? - 进入设置
--> SSH公钥
--> 添加公钥
:
? - 将我们生成的密钥 id_rsa_gitee.pub
填进去
3、配置config
- 打开git bash,在
.ssh
目录下,新建并编辑config文件,命令如下:
$ cd ~/.ssh
$ touch config
$ vim config
- 输入
i
进入编辑模式,输入以下内容
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
-ESC
进入命令模式输入:wq
保存、退出。
4、用ssh命令测试
用ssh命令分别测试:
$ ssh -T git@gitee.com
$ ssh -T git@github.com
出现下面的结果说明配置成功:
$ ssh -T git@gitee.com
The authenticity of host ‘gitee.com (212.64.62.183)‘ can‘t be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘gitee.com,212.64.62.183‘ (ECDSA) to the list of known hosts.
Hi fighter3! You‘ve successfully authenticated, but GITEE.COM does not provide shell access.
6、使用
- 我们可以通过
ssh
路径来克隆项目,或者git init
之后添加远程仓库:
- 上面是一个gitee仓库的路径,我们可以给项目添加github的远程仓库
$ git remote add github git@github.com:fighter3/dairly-learn.git
- 接下来我们可以把代码
push
到github
$ git push github master
参考:
【1】:配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境
【2】:Git配置多个SSH-Key