Git同时使用不同平台代码仓库

问题描述

公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同时使用两个平台的代码仓库,则会显示仓库不存在或没有权限之类的报错。

刚开始是使用gitinn/gitlab作为仓库的,克隆github项目时会报错:

直接将将id_rsa.pub公钥加入到github中,但是仍然报错,继续克隆项目则会提示:

此时意识到,当前~/.ssh下的id_rsa和id_rsa.pub是配置成了gitinn/gitlab的密钥对,而github平台的ssh秘钥对是配置了github_rsa文件,所以需要生成该文件名的密钥对才能访问到github仓库

解决之道

(1)配置.ssh/config文件, 使得克隆不同平台项目时使用不同的秘钥文件

#gitinn
Host gitinn.com
Hostname git.gitinn.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

#github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa

(2)生成github_rsa和github_rsa.pub密钥对

ssh-keygen 

具体执行流程:

(3)此时将生成的 ~/.ssh/github_rsa.pub文件放到github平台,然后测试是否有权限

ssh -T git@github.com

(4)克隆成功

原文地址:https://www.cnblogs.com/zqunor/p/10482646.html