github多个账号配置多个SSH秘钥
背景
对于有多个github账号的同学,需要配置多个ssh秘钥分别管理多个账号。
方法
1、生成多个SSH秘钥
# 为第一个 GitHub 账号生成密钥
ssh-keygen -t ed25519 -C "your_email_1@example.com" -f ~/.ssh/id_ed25519_github_work
# 为第二个 GitHub 账号生成密钥
ssh-keygen -t ed25519 -C "your_email_2@example.com" -f ~/.ssh/id_ed25519_github_personal
-C 是邮箱地址的注释,-f 指定密钥文件保存的位置。
2、将公钥添加到对应的 GitHub 账号
生成 SSH 密钥后,你需要将公钥添加到各自的 GitHub 账户中。
- 运行以下命令复制 SSH 公钥:
复制代码
cat ~/.ssh/id_ed25519_github_work.pub
- 复制密钥内容后,打开 GitHub 账户,进入 Settings > SSH and GPG keys,点击 New SSH Key,将密钥添加进去。
- 同样地,重复步骤为第二个 GitHub 账号添加对应的公钥。
3、配置 SSH
在 ~/.ssh/config 文件中配置 SSH,使其知道每个仓库应该使用哪个密钥。
# 第一个 GitHub 账号配置 (工作账号)
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github_work
# 第二个 GitHub 账号配置 (个人账号)
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github_personal
4、克隆仓库时使用不同的 Host
# 对于第一个 GitHub 账号(工作账号),你应该使用如下的命令来克隆仓库:
git clone git@github-work:username/repository.git
# 对于第二个 GitHub 账号(个人账号),则使用:
git clone git@github-personal:username/repository.git
5、配置现有仓库使用特定的 SSH Key
如果你已经克隆了某个仓库,并且想为其指定使用特定的 SSH Key,可以使用以下命令更改仓库的远程 URL:
# 工作账号仓库
git remote set-url origin git@github-work:username/repository.git
# 个人账号仓库
git remote set-url origin git@github-personal:username/repository.git
总结
通过生成多个 SSH 密钥、配置 SSH 文件和使用不同的 Host 名称,你可以在同一台机器上无缝地管理多个 GitHub 账号。