Mac OS下Git的SSH配置,以及如何同时使用GitHub和GitLab

Mac OS下Git的SSH配置,以及如何同时使用GitHub和GitLab

前言

需求

我希望同时使用GitHub和GitLab,GitHub学习使用,GitLab工作使用。

过程

按照网上教程,我反复配置了多次都无法使用两套密钥(一套对GitHub,一套对GitLab),即使使用 ssh -T git@github 测试没问题,也无法正常使用公司的gitlab,于是我打算使用一套密钥。

Git的SSH配置以及“Enter passphrase for key”问题

安装了git后,在终端中设置git的user name和email

git config --global user.name "用户名"
git config --global user.email "邮箱地址"

然后终端输入

cd ~/.ssh

如果没有此路径或者此路径下为空,说明没有创建ssh key,终端输入

ssh-keygen -t rsa -C "邮箱地址"

三个回车后生成密钥,同时获取公钥

cat id_rsa.pub

将公钥添加到你的GitHub上,

截屏20200304上午9.58.30.png

这个时候你会发现每次clone等操作都会遇到“Enter passphrase for key”让你输入私钥密码,终端输入以下命令解决。

ssh-add -K ~/.ssh/id_rsa 

一般来说到这里就结束了,但是我重启电脑后还是需要私钥。这个时候终端输入

vim ~/.ssh/config

然后插入以下内容解决

Host *
    UseKeychain yes

同时使用GitHub和GitLab

GitLab添加公钥步骤与GitHub一样,配置完成后修改以下config文件

Host github
    HostName github.com
    IdentityFile ~/.ssh/id_rsa
Host gitlab
    Port xx  #公司的gitlab一般是有端口的,注意这个
    HostName xx.xx.xx.xx #公司gitlab地址
    IdentityFile ~/.ssh/id_rsa

然后我就可以正常使用了。

笔记(与以上无关)

查看全局配置

git config --global --list

取消全局配置

git config --global --unset user.name
git config --global --unset user.email

生成ssh key,并指定名字

ssh-keygen -t rsa -C "注册的github邮箱" -f ~/.ssh/id_rsa_hub