前言
需求
我希望同时使用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上,
这个时候你会发现每次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
Q.E.D.