在工做中,頗有可能遇到這樣的狀況:公司用gitlab搭建了一個倉庫,本身日常使用github來存儲本身的代碼。這樣就形成在只設置了公司的gitlab SSH的時候,clone本身github倉庫代碼時,只能使用HTTPS的方式clone,很不方便。因此這篇文章會教會你同時在一臺電腦上配置兩個SSH,以方便本身在工做和我的空間上的快速切換,提升效率。
首先,要找到位於用戶下的.ssh文件,直接:git
cd ~/.ssh
而後, 須要設置全局的name和email(這裏注意,哪一個經常使用設置哪一個,我是公司經常使用,就設置的公司的)github
git config --global user.name 'xxx' git config --global user.email 'xxx@curefun.com'
接下來, 開始生成祕鑰文件. 這裏直接兩個都生成一下ssh
ssh-keygen -t rsa -C 'xxx@curefun.com' // GitLab // Enter file in which to save the key (/Users/tomatoro/.ssh/id_rsa): id_rsa_gitlab ssh-keygen -t rsa -C 'tomatoro@163.com' // GitHub // Enter file in which to save the key (/Users/tomatoro/.ssh/id_rsa): id_rsa_github
進入到.ssh文件下,找到id_rsa_gitlab.pub和id_rsa_github.pub 將裏面的內容所有複製粘貼到github 和 gitlab 的SSHKEY上gitlab
這裏名字隨便起, 而後記得.pub文件裏內容所有複製就行了. 完了以後點保存. gitlab同理.
接下來就要將兩個key在本地存儲起來
打開agentspa
ssh-agent -s ssh-add ~/.ssh/id_rsa_github // 輸入生成祕鑰時設置的密碼 ssh-add ~/.ssh/id_rsa_gitlab // 輸入生成祕鑰時設置的密碼
而後須要一個config文件來管理這兩個key,以讓git知道分配給誰
在.ssh目錄下建立config文件code
touch ~/.ssh/config
打開config編輯以下內容blog
Host github.com // 不動 HostName ssh.github.com // 不動 User tomatoro@163.com // 你本身的github郵箱 PreferredAuthentications publickey // 不動 IdentityFile ~/.ssh/id_rsa_github // 不動 Port 443 // 若是ssh -T git@github.com的時候報 ssh: connect to host github.com port 22: Operation timed out就把Port這條加上吧,這個坑坑了我很久!! Host 192.168.0.231 // 大家公司gitlab的ip地址 HostName 192.168.0.231 //與Host保持一致 User xxx@curefun.com // 你gitlab的郵箱 IdentityFile ~/.ssh/id_rsa_gitlab // 不動 Port 64222 // 大家公司gitlab的ip端口
好了,到了這一步,設置就基本所有完成了,接下來只須要跟遠端的SSH同步一下就OK了ip
公司倉庫下
ssh -T git@192.168.0.231 輸入密碼 git clone ssh://git@192.168.0.231:64222/MLE/skillCenter.git
我的倉庫下
git init // --local須要在有git倉庫的狀況下才能夠執行 git config —local user.name 'tomatoro' git config —local user.email 'tomatoro@163.com' ssh -T git@github.com 輸入密碼 git clone ssh://git@github.com:443/Tomatoro/TypeScript-study.git
至此,就所有結束了. 想一想我在搞這個東西的時候遇到的坑,如今都以爲好惡心. 整整弄了一下午, 但願對後來者有些許幫助吧.
所有原創,歡迎轉載!轉載請註明出處.謝謝!同步