如何在同一台机器上访问公司和个人的 GitHub 仓库
Source: Dev.to
介绍
管理多个 GitHub 账户——个人和公司——可能会很棘手,尤其是在需要保持仓库分离并避免向错误账户提交时。为每个账户使用不同的 SSH 密钥可以简化工作流并提升安全性。
步骤 1:生成两个 SSH 密钥对
为每个 GitHub 账户创建专用的 RSA 密钥对。
公司账户
ssh-keygen -t rsa -b 4096 -C "your-company-email@example.com" -f ~/.ssh/id_rsa_company
-C为密钥添加注释(通常是你的邮箱),以便识别。-f指定文件名,防止覆盖默认密钥。
系统会提示你设置密码短语——强烈推荐。
该命令会生成:
~/.ssh/id_rsa_company(私钥)~/.ssh/id_rsa_company.pub(公钥)
个人账户
ssh-keygen -t rsa -b 4096 -C "your-personal-email@example.com" -f ~/.ssh/id_rsa_personal
这会生成:
~/.ssh/id_rsa_personal(私钥)~/.ssh/id_rsa_personal.pub(公钥)
步骤 2:配置 SSH 使用正确的密钥
编辑(或创建)~/.ssh/config,为每个账户定义主机别名。
vi ~/.ssh/config
添加以下内容:
# Company GitHub Account
Host github-company
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_company
IdentitiesOnly yes
# Personal GitHub Account
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
IdentitiesOnly yes
保存并关闭文件。如果还有其他账户,可继续添加相应的段落。
步骤 3:将公钥添加到你的 GitHub 账户
公司账户
cat ~/.ssh/id_rsa_company.pub
复制完整输出(以 ssh-rsa 开头、以你的邮箱结尾)。
- 前往公司 GitHub 账户的 Settings → SSH and GPG keys。
- 点击 New SSH key,填写标题,粘贴密钥并保存。
个人账户
cat ~/.ssh/id_rsa_personal.pub
在个人 GitHub 账户中重复相同的步骤添加密钥。
使用正确主机克隆仓库
克隆时,使用在 ~/.ssh/config 中定义的主机别名。
个人仓库
git clone git@github-personal:USERNAME/REPO.git
公司仓库
git clone git@github-company:USERNAME/REPO.git
将 USERNAME/REPO 替换为相应的仓库路径。
为已有本地仓库设置远程地址
要推送到正确的账户,添加使用对应主机别名的远程地址。
个人远程
git remote add origin git@github-personal:USERNAME/REPO.git
公司远程
git remote add origin git@github-company:USERNAME/REPO.git
此后 git push 与 git pull 会自动使用对应的 SSH 密钥。
快速参考
| 别名 | ~/.ssh/config 中的主机 | 密钥文件 |
|---|---|---|
github-personal | github.com | ~/.ssh/id_rsa_personal |
github-company | github.com | ~/.ssh/id_rsa_company |
通过以上步骤,你就可以在同一台机器上无缝地使用个人和公司 GitHub 仓库。