我们经常会去GitHub上看一些资料,开源项目之类的,但是毕竟是国外的,我的代码都是放在国内的,如gitee.com,coding.net。这样就有一个问题,如何在一个系统中同时配置多个远程Git仓库呢?我们今天就来说说这个问题,当然网上资料一大片,我是针对这个问题的重点和问题来写的,希望对你有所帮助,欢迎喷涂。。。
[Git]远程Git ~ SSH
[Git]一个本地Git仓库push多个远程仓库
比如我们生成两个远程Git仓库,一个连接远程的GitEE,一个连接远程的GitHub
一、配置远程GitEE的仓库
- 使用命令生成关联码云的公钥私钥对
ssh-keygen -t rsa -C "ThinkPad~GitEE"
- 输入私钥的名称的时候,即屏幕上出现
Enter file in which to save the key (/home/ShrekerNil/.ssh/id_rsa):
的时候,输入私钥的名称,这里我的输入是:id_rsa_gitee
然后后面的相位就不用管了,一路回车,就生成完成了 - 打开
.ssh
文件夹,打开生成的pub文件,复制其中的所有内容,打开GitEE官网,在右上角图标的下拉框中选择设置(seting),打开的界面中的左侧导航栏中选择SSH公钥
,把刚才复制的公钥信息粘贴到下面的大框中,然后填写一个你认识的标题,就可以保存了; - 在
.ssh
文件夹中,生成一个名为config
的文件,其中配置如下的信息# Config GitEE Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitee
- 利用命令把这个信息添加到
ssh-add ~/.ssh/id_rsa_gitee
- 如果报错:
Could not open a connection to your authentication agent.
,那么执行如下命令后再次执行上面的添加操作,即可成功ssh-agent bash
- 如果报警告:
WARNING: UNPROTECTED PRIVATE KEY FILE!
,是因为你没有这个权限,我这里命令行用的是babun,所以可以在windows上按照Linux的格式修改权限:chmod 700 ~/.ssh/id_rsa_gitee
- 如果报错:
- 然后就可以测试码云的连接了:
ssh -T git@gitee.com
- 如果报错:
Bad owner or permissions on /home/ShrekerNil/.ssh/config
,说明还是权限的问题,执行下列命令后再执行上面的测试指令即可:chmod 600 ~/.ssh/config
- 如果报错:
二、配置远程GitHub的仓库
- 主要的步骤和上面的一模一样,还是首先创建本地的公私钥对,把公钥配置到GitHub上,在config文件中配置相关的信息,把密钥添加到ssh中,测试连接等
三、其他说明
- ssh-keygen指令可以添加上要生成的私钥的文件名,如果添加文件名参数,那么后面就不会再提示填写, 即非交互式生成密钥对,如下:
ssh-keygen -t rsa -C "ThinkPad~GitEE" -f "id_rsa_test"
- 查看本地ssh添加了哪些连接
ssh-add -l