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
使用别名访问仓库,解决多账号访问冲突

相关推荐
嘻嘻仙人11 小时前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
白鲸开源14 小时前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
白鲸开源14 小时前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github
徐小夕1 天前
万字拆解 JitWord:企业级实时协同文档底层架构 + 大模型 AI 融合完整实践
前端·vue.js·github
码流怪侠2 天前
【GitHub】Ponytail:给 AI 编码代理植入“懒人资深开发者“灵魂的开源插件深度拆解
程序员·github·ai编程
齐翊2 天前
怎么确认 AI 看懂了你的提示词?
人工智能·github·ai编程
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
荣--2 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
李小庆2 天前
Sowork AI Agent 编程助手教程 :第一章 Python环境搭建与Sowork项目克隆学习目标
github
江华森2 天前
动手实战学 Docker — 从零到集群编排完全指南
运维