在工做中,颇有可能遇到这样的状况:公司用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
至此,就所有结束了. 想一想我在搞这个东西的时候遇到的坑,如今都以为好恶心. 整整弄了一下午, 但愿对后来者有些许帮助吧.
所有原创,欢迎转载!转载请注明出处.谢谢!同步