Loading

多个github帐号如何使用SSH不产生冲突

多个github帐号如何使用SSH不产生冲突

使用场景:

1.我有两个github帐号A,B
2.我只有一台电脑,但是A和B都需要连接
3.最开始单独使用A的时候,创建了一对密钥;现在想连接B仓库,使用原来的密钥会提示"SSH已经被使用,无法添加"

问题分析:

github不允许多个账号添加同一个公钥,因为如果A能用这个公钥连接,B也能用这个公钥连接,那安全登录就不起作用了。

解决方案:

我们可以在同一个电脑上生成多个SSH Key,操作步骤如下:

1、生成新的SSH Key

git bash

$ ssh-keygen -t ed25519 -C "your_email@example.com" # 这里换成你的邮箱
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_ed25519):
# 注意,这里不要直接回车,否则会覆盖之前建的key。需要给他换一个名字。
$ /c/Users/Administrator/.ssh/new_ssh_key

然后一直回车就可以了。

2、找到新生成的SSH Key,添加到后台

在目录c/Users/Administrator/.ssh/下,复制公钥添加到Github B帐号的后台。

3、创建config文件

在目录c/Users/Administrator/.ssh/下,如果没有,创建一个config文件,然后打开。添加配置:

#A-GitHub
Host A-GitHub
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519

#B-GitHub
Host B-GitHub
HostName github.com
User git
IdentityFile ~/.ssh/new_ssh_key
  • Host 为了区分A和B而起的别名
  • IdentityFile 区分使用哪个公钥,比如这里A-GitHub使用原先的,B-GitHub使用新生成的new_ssh_key

4、替换github仓库SSH地址

比如我们连接B仓库

原先的地址为git@github.com:BBBBB/test.git

# git remote add origin git@github.com:BBBBB/test.git
$ git remote add origin git@B-GitHub:BBBBB/test.git

把@后面的github.com更改为刚才设置的别名。

这样一台电脑生成的两个公钥就可以分别连接A和B的远程仓库了。

posted @ 2021-11-05 11:09  yyyz  阅读(279)  评论(0编辑  收藏  举报