转自:https://www.jianshu.com/p/2192e64a8e36
背景
由于公司使用gitlab部署私有代码库,个人有需求使用gitee的开源代码,
如果配置全局的账号密码会冲突。所以有必要生成两个id_rsa.pub密钥分别配置到gitlab和gitee的ssh密钥中去。
操作
- 设置第一个邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa_1 -C “第1个邮箱”
如图所示,全程直接回车,不设置密码
![](http://upload-images.jianshu.io/upload_images/26457449-94a565ea538a00fd.png?imageMogr2/auto-orient/strip|imageView2/2/w/1004/format/webp)
- 同理,设置第二个邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa_1 -C “第2个邮箱”
![](http://upload-images.jianshu.io/upload_images/26457449-3cd566a0682d029e.png?imageMogr2/auto-orient/strip|imageView2/2/w/1170/format/webp)
- 创建config文件
# first user
Host [email protected]
HostName http://gitlab.com
User 用户名
IdentityFile ~/.ssh/id_rsa_1
# second user
Host [email protected]
HostName https://gitee.com
User 用户名
IdentityFile ~/.ssh/id_rsa_2
这里配置过程中出现了一点问题,就是因为是公司gitlab,没有域名,这里需要在公司Gitlab的web版本创建一个空白项目,找到域名和端口
![](http://upload-images.jianshu.io/upload_images/26457449-57f71c38a97c68e5.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
这里将config文件改成:
# first user
Host 10.1.1.1(举例)
port 12345(举例)
HostName 10.1.1.1(举例)
User 用户名
IdentityFile ~/.ssh/id_rsa_1
# second user
Host [email protected]
HostName https://gitee.com
User 用户名
IdentityFile ~/.ssh/id_rsa_2
-
将id_rsa_1.pub和id_rsa_2.pub分别配置到gitlab和gitee的ssh密钥配置中。
image.png
-
取消git的全局配置
git config --global --unset user.name
看一下有没有全局配置
git config --global -l
如图下图所示,如果没有用户名和邮箱就代表取消了全局配置了。
![](http://upload-images.jianshu.io/upload_images/26457449-a5f3af5304405f66.png?imageMogr2/auto-orient/strip|imageView2/2/w/544/format/webp)
- 执行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
![](http://upload-images.jianshu.io/upload_images/26457449-2c82c41628594509.png?imageMogr2/auto-orient/strip|imageView2/2/w/1138/format/webp)
注意:
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
-
测试是否连接成功
作者:Neil_Wong
链接:https://www.jianshu.com/p/2192e64a8e36
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 标签:git,gitlab,rsa,gitee,ssh,com,id From: https://www.cnblogs.com/sammisammi/p/16924656.html