@
在我們的日常開發中,可能要用到多個賬號,公司開發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