你电脑的系统是macos或Linux,你有两个github的账户:github-a 和 github-b。你当前用的是github-a,ssh-key的公钥名称是id_ed25519.pub。此时你需要使用一个新的github-b账户,当你在github-b的后台添加id_ed25519.pub时,会看到Key is already in use的错误提示,原因是github不允许同一个ssh key 公钥被多个账户使用。
那能不能在一个电脑里同时使用github-a和github-b两个账户,不需要去配置git origin,丝滑使用git命令呢?答案是当然可以的。
步骤一 创建一个新的ssh key
既然github的ssh key 公钥是唯一的,我们就再创建一个新的给github-b使用。
打开终端,执行如下命令
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_b -C "test@test.tech"
一路回车,最终在~/.ssh目录下会有两个新文件:
id_ed25519_b 和 id_ed25519_b.pub
命令里的id_ed25519_b和邮箱可以换成你实际用的。
登录github-b的账户后台,在把id_ed25519_b.pub 添加到ssh key
此时肯定是可以添加成功的,这是一个新的ssh key。
步骤二 设置ssh config
vi ~/.ssh/config ,添加如下内容
# github-a 账户(当前使用的)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
# github-b 账户
Host github.com-b
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_b
IdentitiesOnly yes
添加完成后,在终端执行如下命令验证下:
ssh -T git@github.com-b
正常的话会看到类似如下的内容:
Hi github-b! You've successfully authenticated, but GitHub does not provide shell access.
步骤三 使用github-b的仓库
假设你在github-b下面有个仓库test-b,默认的ssh地址是:
git@github.com:github-b/test-b.git
把github.com换成github.com-b,得到实际要clone的地址:
git@github.com-b:github-b/test-b.git
此时就能正常clone到本机了:
git clone git@github.com-b:github-b/test-b.git
之后在这个仓库下正常使用git命令,纵享丝滑。比如:
git pull
git push