Git 配置多个 SSH Key
背景
同时使用两个 Gitee 帐号,需 要为两个帐号配置不同的 SSH Key:
- 帐号 A 用于公司;
- 帐号 B 用于个人。
解决方法
- 生成帐号 A 的 SSH Key,并在帐号 A 的 Gitee 设置页面添加 SSH 公钥:
ssh-keygen -t ed25519 -C "Gitee User A" -f ~/.ssh/gitee_user_a_ed25519
- 生成帐号 B 的 SSH-Key,并在帐号 B 的 Gitee 设置页面添加 SSH 公钥:
ssh-keygen -t ed25519 -C "Gitee User B" -f ~/.ssh/gitee_user_b_ed25519
- 创建或者修改文件
~/.ssh/config
,添加如下内容:
Host gt_a
User git
Hostname gitee.com
Port 22
IdentityFile ~/.ssh/gitee_user_a_ed25519
Host gt_b
User git
Hostname gitee.com
Port 22
IdentityFile ~/.ssh/gitee_user_b_ed25519
- 用 ssh 命令分别测试两个 SSH Key:
$ ssh -T gt_a
Hi Gitee User A! You've successfully authenticated, but GITEE.COM does not provide shell access.
$ ssh -T gt_b
Hi Gitee User B! You've successfully authenticated, but GITEE.COM does not provide shell access.
- 拉取代码:
将 git@gitee.com
替换为 SSH 配置文件中对应的 Host
,如原仓库 SSH 链接为:
git@gitee.com:owner/repo.git
使用帐号 A 推拉仓库时,需要将连接修改为:
gt_a:owner/repo.git