不同的项目仓库配置不同的github账号

第 1 步:为每个账号生成独立的 SSH 密钥

假设你有两个账号:

  • 个人账号:personal@example.com
  • 公司账号:company@example.com
  1. 为个人账号生成密钥
    打开终端(或 Git Bash),执行以下命令。注意 -f 参数指定了密钥文件的名称,-C 参数是注释(通常用邮箱)。
javascript 复制代码
    ssh-keygen -t ed25519 -C "personal@example.com" -f ~/.ssh/id_ed25519_personal
markdown 复制代码
*   当提示"Enter passphrase"时,**强烈建议设置一个密码**,增加安全性。
*   这会生成两个文件:`~/.ssh/id_ed25519_personal`(私钥)和 `~/.ssh/id_ed25519_personal.pub`(公钥)。
  1. 为公司账号生成密钥
    同样,执行命令生成另一对密钥。
javascript 复制代码
    ssh-keygen -t ed25519 -C "company@example.com" -f ~/.ssh/id_ed25519_company
markdown 复制代码
*   这会生成:`~/.ssh/id_ed25519_company`(私钥)和 `~/.ssh/id_ed25519_company.pub`(公钥)。

第 2 步:将公钥添加到对应的 GitHub 账号

  1. 复制个人账号的公钥
bash 复制代码
    # macOS
    pbcopy < ~/.ssh/id_ed25519_personal.pub
    # Windows (Git Bash)
    clip < ~/.ssh/id_ed25519_personal.pub
    # Linux
    cat ~/.ssh/id_ed25519_personal.pub
markdown 复制代码
然后登录你的**个人 GitHub 账号**,进入 `Settings -> SSH and GPG keys`,点击 `New SSH key`,粘贴公钥内容。
  1. 复制公司账号的公钥
bash 复制代码
    # macOS
    pbcopy < ~/.ssh/id_ed25519_company.pub
    # Windows (Git Bash)
    clip < ~/.ssh/id_ed25519_company.pub
    # Linux
    cat ~/.ssh/id_ed25519_company.pub
markdown 复制代码
登录你的**公司 GitHub 账号**,重复上述步骤,添加公钥。

第 3 步:创建并配置 SSH Config 文件

这是整个方案的核心!这个文件会告诉 SSH 客户端如何根据域名匹配不同的密钥。

  1. 创建或编辑 ~/.ssh/config 文件(如果文件不存在,直接新建)。
  2. 在文件中添加以下内容:
bash 复制代码
    # 个人账号配置
    Host github.com-personal
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_ed25519_personal
      IdentitiesOnly yes

    # 公司账号配置
    Host github.com-company
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_ed25519_company
      IdentitiesOnly yes
markdown 复制代码
**配置解释**:
*   `Host github.com-personal`:这是一个**别名**。当你使用这个别名时,会应用下面的配置。
*   `HostName github.com`:真实的域名是 `github.com`。
*   `User git`:登录用户名是 `git`(GitHub SSH 协议固定为 git)。
*   `IdentityFile ~/.ssh/id_ed25519_personal`:指定使用哪个私钥文件。
*   `IdentitiesOnly yes`:强制 SSH 只使用 `IdentityFile` 指定的密钥,防止默认使用其他密钥导致认证失败。

第 4 步:克隆仓库并配置本地用户信息

现在,克隆仓库的方式需要稍作改变。

  1. 克隆个人仓库
    原始的克隆地址是 git@github.com:personal-username/my-repo.git
    你需要将其中的 github.com 替换为你配置的别名 github.com-personal
bash 复制代码
    git clone git@github.com-personal:personal-username/my-repo.git
  1. 克隆公司仓库
    同理,使用 github.com-company 别名:
bash 复制代码
    git clone git@github.com-company:company-username/work-repo.git
  1. 进入仓库目录,配置本地用户信息
    这一步至关重要!它决定了你的 git commit 提交记录关联到哪个用户。
bash 复制代码
    # 进入个人仓库
    cd my-repo
    git config user.name "Your Personal Name"
    git config user.email "personal@example.com"

    # 进入公司仓库
    cd ../work-repo
    git config user.name "Your Company Name"
    git config user.email "company@example.com"
markdown 复制代码
**注意**:这里使用的是 `git config`(不带 `--global`),表示该配置**仅对当前仓库有效**。

第 5 步:测试连接

perl 复制代码
# 测试个人账号连接
ssh -T git@github.com-personal
# Hi personal-username! You've successfully authenticated...

# 测试公司账号连接
ssh -T git@github.com-company
# Hi company-username! You've successfully authenticated...

如果都看到成功提示,恭喜你,配置完成!以后在这些仓库里进行 git pushgit pull 都会自动使用正确的账号。

相关推荐
CoderJia程序员甲18 分钟前
GitHub 热榜项目 - 日榜(2026-02-05)
ai·开源·大模型·github·ai教程
weixin_6682 小时前
GitHub 2026年AI项目热度分析报告-AI分析-分享
人工智能·github
MicrosoftReactor3 小时前
技术速递|GitHub Copilot CLI 斜杠命令速查表
github·copilot·cli
wu~9703 小时前
GitHub永不遗忘,使用git push -f来覆盖的提交依旧保留
git·github
m0_694845574 小时前
music-website 是什么?前后端分离音乐网站部署实战
linux·运维·服务器·云计算·github
独自破碎E4 小时前
已经 Push 到远程的提交,如何修改 Commit 信息?
开发语言·github
jiang_changsheng6 小时前
工作流agent汇总分析 2
java·人工智能·git·python·机器学习·github·语音识别
馨谙7 小时前
Ansible 配置文件详解:让自动化管理更轻松
运维·github·ansible
Gofarlic_OMS7 小时前
Altium许可证状态自动化监控方案
大数据·运维·服务器·人工智能·自动化·github
岱宗夫up7 小时前
GitHub Desktop如何设置中文?这不是个简单问题
git·github