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.com 。Host 是你给本地 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 。
使用别名访问仓库,解决多账号访问冲突。

相关推荐
姜鱼问生9 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*10 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
深蓝AI10 小时前
GitHub的Push一年涨4.9倍:AI Agent为什么逼它重做Git存储?
人工智能·github
运维行者_11 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时12 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
IT研究所13 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
AIgorithmGEEK13 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil20814 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)14 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter62514 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器