github和gitlab倉庫一起使用


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

1.生成秘鑰

公司的GitLab生成一個SSH-Key

# 在~/.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的工作目錄分別如下所示:

github工作倉庫:~/workspace/github
gitlab工作倉庫:~/workspace/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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM