在一台电脑上生成多个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"部分。

相关推荐
风流倜傥唐伯虎6 分钟前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力7 分钟前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene11 分钟前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.19 分钟前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧27 分钟前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮1 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
酷酷的崽7981 小时前
CANN 生态可维护性与可观测性:构建生产级边缘 AI 系统的运维体系
运维·人工智能
做人不要太理性1 小时前
CANN Runtime 运行时组件深度解析:任务调度机制、存储管理策略与维测体系构建逻辑
android·运维·魔珐星云
souyuanzhanvip2 小时前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
文静小土豆2 小时前
Docker 与 containerd 代理配置详解:镜像拉取速度慢的终极解决方案
运维·docker·容器