在一台电脑上生成多个ssh公钥并添加到不同GitHub账号

在同一台电脑上操作多个 GitHub 账号的仓库

为每个账号生成独立的 SSH 密钥对,然后通过配置来区分使用。

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

    复制代码
    ssh-keygen -t ed25519 -C "your-email1@example.com" -f ~/.ssh/id_ed25519_personal
    ssh-keygen -t ed25519 -C "your-email2@example.com" -f ~/.ssh/id_ed25519_work

    (生成不同的文件名,避免覆盖默认的 id_ed25519)

  2. 将每个公钥分别添加到对应的 GitHub 账号

    • 网页登录账号1 → Settings → SSH and GPG keys → New SSH key,粘贴 personal.pub 的内容。
    • 网页登录账号2 → 同上,粘贴 work.pub 的内容。
  3. 配置 ~/.ssh/config 文件(这是关键,能让你用同一个 git@github.com 但自动切换密钥):

    复制代码
    # 默认账号
    Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_personal
        IdentitiesOnly yes
    
    # 工作账号(用别名区分)
    Host github-work
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_work
        IdentitiesOnly yes
  4. clone 仓库时

    • 个人账号的仓库:正常 clone
      git clone git@github.com:username1/repo.git
    • 工作账号的仓库:用别名
      git clone git@github-work:username2/repo.git

这样,能在同一台机器上操作不同账号的仓库了

如果只偶尔访问某个仓库,可以用临时命令:

复制代码
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519_work -o IdentitiesOnly=yes" git clone git@github.com:username2/repo.git

更多细节

可以参考 GitHub 官方文档的"Managing multiple accounts"部分。

相关推荐
不能跑的代码不是好代码4 小时前
Linux系统常用命令中文速查表
linux·运维·服务器
石一峰6995 小时前
深入理解 Linux 中断三层机制与 1-Wire 时序锁原理
linux·运维·服务器
运维老郭5 小时前
PostgreSQL编译安装实战
运维·postgresql
鱼樱前端5 小时前
别再自己拼凑了!这款 Vue 3.5+ 严肃产品级组件库,把 AI 对话、工作流和复杂数据全包了!
javascript·vue.js·github
无限码农6 小时前
Linux上通过cmake编译uchardet
linux·运维·服务器
运维大师7 小时前
【Linux运维极简教程】06-网络配置与管理
linux·运维
阿里嘎多学长7 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
007张三丰7 小时前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured
ACP广源盛139246256737 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
IpdataCloud8 小时前
跨区服玩家延迟高怎么办?用IP离线库自动分配到最近服务器
数据库·tcp/ip·github·php·ip