dylanin1999

导航

在一台电脑上创建多个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编辑  收藏  举报