在一台电脑上创建多个GitHub仓库的连接方式
之前一直对于如何创建多个GitHub仓库有所疑惑,这次整理了一下创建的步骤,作为记录,也希望可以帮到有需要的朋友。
环境:Windows10
步骤:
1、在GitHub上创建一个远程仓库,这一步,大家都很熟悉,不必赘述
2、创建一个新的公钥,对应新的仓库
#id_rsa_x为密钥名称,可任意选取,但不要和之前的重复
ssh-keygen -t rsa -f ~/.ssh/id_rsa_x -C "yourmail@xxx.com
在C盘的用户.ssh目录下户多出 id_rsa_x
和 id_rsa_x.pub
两个文件
3、在 .ssh 目录创建一个config文件
文件内容如下,主要是进行仓库密钥分配
# 第一个账号,默认使用的账号
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# 第二个账号
Host second.github.com # second为前缀名,可以任意设置
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_x #注意此处上下不同
原理分析
1.ssh 客户端是通过类似 git@github.com:githubUserName/repName.git ** 的地址来识别使用本地的哪个私钥的,地址中的 User 是@
前面的git
, Host 是@
后面的github.com
。
2.如果所有账号的 User 和 Host 都为 git 和 github.com,那么就只能使用一个私钥。所以要对User 和 Host 进行配置,让每个账号使用自己的 Host,每个 Host 的域名做 CNAME 解析到 github.com,如上面配置中的Host second.github.com
。
3.配置了别名之后,新的地址就是git@second.github.com:githubUserName/repName.git**(在添加远程仓库时使用)。
这样 ssh 在连接时就可以区别不同的账号了。
可以看一下,.ssh 文件夹中是否有以下文件:
(我这里有三个仓库,所以有三个不同的密钥/公钥文件)
4、在GitHub网页中添加上面创建的新的密钥,这一步比较简单,不必多说
5、测试 ssh 链接
ssh -T git@github.com
ssh -T git@second.github.com
# xxx! You’ve successfully authenticated, but GitHub does not provide bash access.
# 出现上述提示,连接成功
6、添加远程仓库
$ git remote add origin git@second.github.com:githubUserName/repName.git
#这里的origin为默认的名字,建议修改为仓库对应的职责
$ git remote -v # 查看远程分支
到这里为止,我们就算是连接成功了,可以尝试对GitHub上的仓库进行push代码验证一下。
纵观全文,其实最为重要的有两点:
1、要为新的仓库创建一个新的密钥,不能使用之前的密钥
2、要创建一个config配置文件,将仓库和密钥的关系一一对应起来
posted on 2022-08-13 16:15 DylanYeung 阅读(85) 评论(0) 编辑 收藏 举报