转自:https://www.jianshu.com/p/2192e64a8e36

 

 

背景

由于公司使用gitlab部署私有代码库,个人有需求使用gitee的开源代码,
如果配置全局的账号密码会冲突。所以有必要生成两个id_rsa.pub密钥分别配置到gitlab和gitee的ssh密钥中去。

操作

  1. 设置第一个邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa_1 -C “第1个邮箱”

如图所示,全程直接回车,不设置密码


 
image.png
  1. 同理,设置第二个邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa_1 -C “第2个邮箱”
 
image.png
  1. 创建config文件
# first user
Host git@gitlab.com
HostName http://gitlab.com
User 用户名
IdentityFile ~/.ssh/id_rsa_1

# second user
Host git@gitee.com
HostName https://gitee.com
User 用户名
IdentityFile ~/.ssh/id_rsa_2

这里配置过程中出现了一点问题,就是因为是公司gitlab,没有域名,这里需要在公司Gitlab的web版本创建一个空白项目,找到域名和端口


 
image.png

这里将config文件改成:

# first user
Host 10.1.1.1(举例)
port 12345(举例)
HostName 10.1.1.1(举例)
User 用户名
IdentityFile ~/.ssh/id_rsa_1

# second user
Host git@gitee.com
HostName https://gitee.com
User 用户名
IdentityFile ~/.ssh/id_rsa_2
  1. 将id_rsa_1.pub和id_rsa_2.pub分别配置到gitlab和gitee的ssh密钥配置中。


     
    image.png
  2. 取消git的全局配置

git config --global --unset user.name

看一下有没有全局配置

git config --global -l

如图下图所示,如果没有用户名和邮箱就代表取消了全局配置了。


 
image.png
  1. 执行ssh识别
    (1)#Start the ‘ssh-agent.exe’ process
eval $(ssh-agent -s)

(2)#install the SSH keys

ssh-add ~/.ssh/id_rsa_1
ssh-add ~/.ssh/id_rsa_2

(3)# show all id_rsa

ssh-add -l
 
image.png

注意:
1、如果ssh-add这步报错:Could not open a connection to your authentication agent.
需要先启动ssh-agent,也就是上面的第一个步骤。
参考链接:https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agent
2、如果执行ssh-add -l报错:Could not open a connection to your authentication agent.
需要先将密钥添加,也就是上述的第二步。
参考链接:https://stackoverflow.com/questions/26505980/github-permission-denied-ssh-add-agent-has-no-identities

  1. 测试是否连接成功


     
     


作者:Neil_Wong
链接:https://www.jianshu.com/p/2192e64a8e36
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。