在Mac上使用ssh同时管理Gitlab和Github的账户

2,865 阅读1分钟

背景

在日常工作中,公司的代码都是保密的,所以常规的手段是内网部署一个私有的gitlab服务,然后为我们域账户添加访问权限。同样有的代码是需要开源的,所以我们也会提交代码到github上,此时我们就需要去使用两个ssh-key来管理不同的仓库。如下我将介绍如何在同一台mac电脑上同时使用ssh管理gitlabgithub账户。

生成sshkey

# 在用户目录下创建.ssh目录,如果有,请忽略该步骤
mkdir ~/.ssh

ssh-keygen -t rsa -C "personal@mail.com" -f ~/.ssh/id_rsa_gitlab
ssh-keygen -t rsa -C "personal@mail.com" -f ~/.ssh/id_rsa_github

现在会生成如下四个文件

~/.ssh/id_rsa_github
~/.ssh/id_rsa_github.pub
~/.ssh/id_rsa_gitlab
~/.ssh/id_rsa_gitlab.pub

在网页上进行配置

Github配置公钥

# 拷贝生成的公钥到剪切板
pbcopy < ~/.ssh/id_rsa_github.pub

github登录你的账号,进入如下Settings > SSH and GPG Keys > New SSH key位置,粘贴公钥。

image.png

Gitlab配置公钥

# 拷贝生成的公钥到剪切板
pbcopy < ~/.ssh/id_rsa_gitlab.pub

登录Gitlab账户,进入Settings > SSH Keys,粘贴公钥使用即可。

使用ssh-agent管理ssh keys

ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab

创建ssh配置文件

# 创建文件
touch ~/.ssh/config
# 编辑文件
vi ~/.ssh/config

以如下内容为模板更改配置

# Personal github account
Host github.com
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_github
# Personal gitlab account
Host gitlab.com
   HostName gitlab.com
   User bgit
   IdentityFile ~/.ssh/id_rsa_gitlab

配置好后可以使用如下命令去测试

ssh -T git@github.com

如果成功你就可以看到下面的提示啦~

image.png