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调试

posted @ 2020-05-18 16:51  有深度  阅读(1008)  评论(0编辑  收藏  举报