github和gitlab倉庫一塊兒使用

github是網絡公有代碼倉庫,通常用於私人代碼託管,而gitlab通常是企業搭建的內部代碼倉庫。工做期間,咱們都會同時用到這兩個倉庫。可公司郵箱與我的郵箱是不一樣的,由此產生的 SSH key 也是不一樣的,這就形成了衝突 。如何在一臺機器上面同時使用 Github 與 Gitlab 的服務?git

1.生成祕鑰

公司的GitLab生成一個SSH-Keygithub

# 在~/.ssh/目錄會生成gitlab_id-rsa和gitlab_id-rsa.pub私鑰和公鑰。咱們將gitlab_id-rsa.pub中的內容粘帖到公司GitLab服務器的SSH-key的配置中。
$ ssh-keygen -t rsa -C "註冊的gitlab郵箱" -f ~/.ssh/gitlab_id-rsa

公網github生成一個SSH-Key服務器

# 在~/.ssh/目錄會生成github_id-rsa和github_id-rsa.pub私鑰和公鑰。咱們將github_id-rsa.pub中的內容粘帖到github服務器的SSH-key的配置中。
$ ssh-keygen -t rsa -C "註冊的github郵箱" -f ~/.ssh/github_id-rsa

 

2.添加config

 在 ~/.ssh下添加config配置文件,內容以下:
# github key
Host github
    Port 22
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id-rsa
Host gitlab
    Port 22
    User git
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id-rsa

  下面對上述配置文件中使用到的配置字段信息進行簡單解釋:網絡

Host
    它涵蓋了下面一個段的配置,咱們能夠經過他來替代將要鏈接的服務器地址。
    這裏能夠使用任意字段或通配符。
    當ssh的時候若是服務器地址能匹配上這裏Host指定的值,則Host下面指定的HostName將被做爲最終的服務器地址使用,而且將使用該Host字段下面配置的全部自定義配置來覆蓋默認的`/etc/ssh/ssh_config`配置信息。
Port
    自定義的端口。默認爲22,可不配置
User
    自定義的用戶名,默認爲git,可不配置
HostName
    真正鏈接的服務器地址
PreferredAuthentications
    指定優先使用哪一種方式驗證,支持密碼和祕鑰驗證方式
IdentityFile
    指定本次鏈接使用的密鑰文件

 

 3.配置倉庫

 假設gitlab與jgithub的工做目錄分別以下所示:ssh

github工做倉庫:~/workspace/github
gitlab工做倉庫:~/workspace/gitlab

則配置以下:gitlab

#gitlab
cd ~/workspace/gitlab
git init
git config --global user.name 'gitlab'
git config --global user.email 'gitlab@company.com'

#github
cd ~/workspace/github
git init
git config --local user.name 'personal'
git config --local user.email 'personal@163.com'

4.測試

# 測試github
$ ssh -T git@github.com
 
# 測試gitlab
$ ssh -T git@gitlab.com
相關文章
相關標籤/搜索