跳到主要内容

Git 配置多个 SSH Key

背景

同时使用两个 Gitee 帐号,需要为两个帐号配置不同的 SSH Key:

  • 帐号 A 用于公司;
  • 帐号 B 用于个人。

解决方法

  1. 生成帐号 A 的 SSH Key,并在帐号 A 的 Gitee 设置页面添加 SSH 公钥:
ssh-keygen -t ed25519 -C "Gitee User A" -f ~/.ssh/gitee_user_a_ed25519
  1. 生成帐号 B 的 SSH-Key,并在帐号 B 的 Gitee 设置页面添加 SSH 公钥:
ssh-keygen -t ed25519 -C "Gitee User B" -f ~/.ssh/gitee_user_b_ed25519
  1. 创建或者修改文件 ~/.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
  1. 用 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.
  1. 拉取代码:

git@gitee.com 替换为 SSH 配置文件中对应的 Host,如原仓库 SSH 链接为:

git@gitee.com:owner/repo.git

使用帐号 A 推拉仓库时,需要将连接修改为:

gt_a:owner/repo.git