Macos同时配置github与公司内部使用的gitlab
一个很简单的问题,让我整整搞了好几个小时,总是在细节上面犯迷糊,所以,决定把这个记录下来。
第一步
重新生成GitHub和gitlab对应的公/密钥
ssh-keygen -t rsa -C “你的gitlab邮箱” -f ~/.ssh/id_rsa_gitlab ssh-keygen -t rsa -C “注册 github 账户的邮箱”
其实,如果之前已经有GitHub对应的公/密钥,就不用重新生成了(没试过,我这边是重新生成的)
然后,进入 ~/.ssh
目录里面应该可以看到4个文件,这四个文件分别对应gitlab和github的公私钥,分别将gitlab和github的公钥配置到github和你公司的gitlab的ssh上。
第二步
把专用密钥添加到ssh-agent的高速缓存中
ssh-agent bash ssh-add ~/.ssh/id_rsa ssh-add ~/.ssh/id_rsa_gitlab
语法:
ssh-add [-cDdLlXx] [-t life] [file...]ssh-add -s pkcs11ssh-add -e pkcs11
选项
-D:删除ssh-agent中的所有密钥. -d:从ssh-agent中的删除密钥 -e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。 -s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。 -L:显示ssh-agent中的公钥 -l:显示ssh-agent中的密钥 -t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥 -X:对ssh-agent进行解锁 -x:对ssh-agent进行加锁
第三步
在.ssh目录下创建一个config文件,写入以下内容
# default Host github.com HostName github.com User github用户名 IdentityFile ~/.ssh/id_rsa Host 你公司的代码仓库地址,可以是局域网地址 HostName gitlab.com User gitlab用户名 #port 20 IdentityFile ~/.ssh/id_rsa_gitlab
第四步
测试:
#测试GitHub是否链接成功 ssh -T git@github.com Hi XXX! You've successfully authenticated, but GitHub does not provide shell access. #表示链接成功 #测试gitlab是否链接成功 ssh -T git@gitlab.com Hi XXX! You've successfully authenticated, but GitHub does not provide shell access. #表示链接成功
注意:重点来了,我在这儿停了好几个小时,这里的 ssh-T git@gitlab.com
只是个测试的命令样例,具体的 git@gitlab.com
应该换成你们公司的gitlab地址, 重要的事情说三遍!!!
具体的 git@gitlab.com
应该换成你们公司的gitlab地址,
具体的 git@gitlab.com
应该换成你们公司的gitlab地址,
具体的 git@gitlab.com
应该换成你们公司的gitlab地址,
如果出现错误,可以使用 ssh-v git@gitlab.com
调试