GitHub 多账号 SSH 配置指南:让个人和工作账号共存

​ 在日常开发中,很多人都会遇到这样的问题:一台电脑既有个人 GitHub 账号,又有工作账号,push、pull 时总是账号混乱 ,或者老是被要求输入密码。

​ 今天,我分享一个 标准、可靠的 SSH 配置方法,让你在一台电脑上优雅管理多个 GitHub 账号,同时和 Claude Code / MCP 等工具无缝配合。

一、为什么需要多账号 SSH 配置

  1. 防止账号冲突

    如果你直接用 HTTPS 方式或者把多个账号的 key 放在默认位置,Git 会默认选第一把 key,push 时可能会报:

    复制代码
    remote: Invalid username or token. Password authentication is not supported for Git operations.
    fatal: Authentication failed
  2. 提高安全性

    每个账号使用独立的 SSH key,更安全,也便于权限管理。

  3. 支持自动化工具

    对接 Claude Code / MCP、CI/CD 等工具时,SSH key 决定了访问权限,多账号管理必须规范。

二、生成第二个 SSH Key并进行配置

2.1 生成新的SSH Key

​ 假设你已有默认账号的 key (id_ed25519),现在为新账号(如 Anne)生成 key:

复制代码
ssh-keygen -t ed25519 -C "Anne@gmail.com"

注意这里 不要用 ~ssh-keygen 不会展开。正确写法:

复制代码
/home/Anne/.ssh/id_ed25519_Anne

​ 完成后会生成:

复制代码
/home/Anne/.ssh/id_ed25519_Anne
/home/Anne/.ssh/id_ed25519_Anne.pub

​ 复制公钥内容:

复制代码
cat ~/.ssh/id_ed25519_mq.Anne

2.2 将公钥添加到Github

  1. 登录对应账号:https://github.com/settings/keys

  2. 点击 New SSH key

  3. 填写 Title(随意,如 服务器地址等等),粘贴公钥内容

  4. 保存

三、配置 SSH 多账号规则

3.1 配置规则

  1. 编辑 ~/.ssh/config

    复制代码
    nano ~/.ssh/config
  2. 写入:

    复制代码
    # 默认账号 WorkAccount
    Host github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_ed25519
    
    # 新账号 Anne,使用 Host 别名 github-Anne
    Host github-Anne
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_ed25519_Anne

3.2 说明

配置 作用
Host 本地别名,访问该 Host 时使用对应 key
HostName 真实服务器地址,GitHub 固定 github.com
User SSH 登录用户,固定 git
IdentityFile 使用哪把 key 连接 GitHub

⚠️ HostName 不是邮箱,也不是 username@github.com,只写 github.comHost 是你给本地 SSH 配置起的别名 ,可以随意命名,如 github-Anne

四、测试 SSH 配置

复制代码
ssh -T git@github.com      # 默认账号
ssh -T git@github-Anne      # 新账号

​ 成功示例:

复制代码
Hi WorkMan!
Hi Anne!

​ 如果显示成功,说明 SSH key 配置正确。

五、使用 Host 别名解决多账号冲突

5.1 直接clone目标库会报错

​ 很多人直接用:

复制代码
git clone git@github.com:Anne/TargetHub.git

​ 会报:

复制代码
ERROR: Repository not found.
fatal: Could not read from remote repository.

​ 原因:

  • SSH 默认用 github.com 对应的默认 key(WorkAccount)
  • GitHub 找不到这个 key 对应的仓库权限

5.2 解决方法

​ 使用你在 ~/.ssh/config 里定义的 Host 别名

复制代码
git clone git@github-Anne:Anne/TargetHub.git

​ 这样 SSH 就会自动选择 id_ed25519_Anne,对应账号访问仓库。

六、修改已有仓库 remote

​ 如果仓库已经 clone,但用错了账号,可以修改:

复制代码
git remote set-url origin git@github-Anne:Anne/TargetHub.git

​ 之后 push / pull 就自动使用对应 key,无需输入用户名密码。

七、日常使用建议

7.1 查看当前仓库使用账号

复制代码
git remote -v

7.2 新 clone 仓库

  • 个人账号:

    复制代码
    git clone git@github-Anne:Anne/项目名.git
  • 默认账号:

    复制代码
    git clone git@github.com:WorkAccount/项目名.git

7.3 配置仓库作者信息

复制代码
git config user.name "Anne"
git config user.email "Anne@gmail.com"

八、总结

​ 通过以上配置,你现在拥有:

  • 多账号共存、互不干扰
  • 自动选择 SSH key,避免密码烦恼

💡 技巧点:Host 是本地别名,HostName 永远 github.com,User 永远 git,IdentityFile 对应 key
使用别名访问仓库,解决多账号访问冲突

相关推荐
William Dawson6 分钟前
2核2G服务器优化指南
运维·服务器
Junsir大斗师18 分钟前
rocky9.7搭建grafana+loki+prometheus+alloy+node_exporter运维监控平台
linux·运维·grafana·prometheus
程序员柒叔25 分钟前
OpenClaw 一周动态-2026-W23
人工智能·github·agent·openclaw
snow@li27 分钟前
Java:Java后端开发,本地开发环境,服务器部署环境,运维支撑环境 都需要哪些类别的工具或技术 / Java后端三大环境完整清单 202606
java·运维·服务器
呆萌的代Ma28 分钟前
解决docker网络问题,通过GitHub Actions打包dockerfile
docker·容器·github
草莓熊Lotso32 分钟前
【Linux网络】深入理解 HTTP 协议(三):静态资源服务、状态码与重定向实战
linux·运维·服务器·网络·c++·http
我命由我1234534 分钟前
Excel - Excel 查看当前单元格格式
运维·学习·职场和发展·excel·求职招聘·职场发展·学习方法
love530love36 分钟前
【笔记】ComfyUI 源码部署版更新后一键修复:从手动补丁到自动化工作流
运维·人工智能·windows·笔记·python·自动化·comfyui
qq_4523962336 分钟前
第十七篇:《Docker 日志管理:驱动配置与集中收集》
运维·docker·容器
hj28625137 分钟前
Linux + 计算机网络全套精炼整理笔记
linux·运维