背景
很多公司都会搭建私有gitlab仓库,而个人一般还会使用github或者oschina,这样就涉及到了多个托管仓库,在使用的时候,如何让git自动识别托管地址,并且使用正确的key?可能有的人会使用同一个id_rsa,如果是多个怎么半?
解决方案
这里以同时使用oschina和github为例,首先分别为两个托管网站生成私钥,如果是windows在git bash下运行。
1 | ssh-keygen -t rsa -C "xxx1@xx.com" |
此处,给一个名字,不然每次都默认是id_rsa会覆盖。例如id_rsa_oschina, id_rsa_github。
后面两项可以直接enter,这里忽略。
查看生成的公钥,将内容copy出来,在对应托管网站的setting的sshkey设置处添加。
1 | cat ~/.ssh/id_rsa_github.pub |
然后命令后使用命令创建一个config文件
1 | 进入登陆用户根目录下的.ssh文件夹 |
命令具体内容如下
1 | oschina |
Host: 别名,随便取
HostName: 对应托管网站的域名
PreferredAuthentications: 验证方式,publickey公钥, password密码
user: 登陆用户,如是是testuser1@github.com 就用testuser1
IdentityFile: 生成的私钥路径
将两个私钥分别添加到 ssh代理
1 | ssh-add -K ~/.ssh/id_rsa_github |
然后分别试一下登陆是否成功把
1 | ssh -T git@github.com |