GitHub SSH密钥配置与多账号管理

GitHub SSH密钥配置与多账号管理说明文档(Mac 专属完整版)
一、文档目的
本文档统一整理 Mac 环境下 GitHub SSH 密钥的 配置、新增、多账号管理、安全规则、丢失处理、日常维护 所有核心操作,解决 HTTPS 密码失效、认证失败、多账号冲突、密钥丢失等问题,可长期保存备查。
二、核心基础知识点(必记)

  1. HTTPS 失败根本原因
    GitHub 已彻底禁用密码登录 HTTPS 方式,不再支持账号密码认证:
  • ❌ 错误:用户名 + 密码 登录 git
  • ✅ 正确方案:SSH 密钥免密 / Token 临时登录
  1. 公钥 & 私钥核心区别(重中之重)
  • 私钥(id_ed25519):本地唯一、绝对机密、禁止外泄,等同于你的 GitHub 登录钥匙
  • 公钥(id_ed25519.pub):可公开,上传保存在 GitHub 账号后台
  • GitHub 只存公钥,不存私钥,私钥丢失无法从云端恢复
  1. 密钥文件名规则
  • 默认名:id_ed25519(系统自动生成,单账号使用)
  • 可自定义:支持自定义命名(如 id_ed25519_personal、id_ed25519_work)
  • 自定义用途:解决一台电脑多个 GitHub 账号的密钥冲突问题
    三、单账号标准配置流程(基础版)
  1. 生成 SSH 密钥
    ssh-keygen -t ed25519 -C "你的GitHub注册邮箱"
    三次提示 全部直接回车(无需设置密码)
  2. 复制公钥到剪贴板
    pbcopy < ~/.ssh/id_ed25519.pub
  3. GitHub 后台添加密钥
  4. 登录 GitHub → 右上角头像 → Settings
  5. 找到 SSH and GPG keys → New SSH key
  6. Title:自定义设备备注(如 MacMini-M4)
  7. Key type:默认 Authentication Key
  8. Key 框粘贴公钥 → 点击 Add SSH key
  9. 测试连通性
    ssh -T git@github.com
    看到 Hi xxx! You've successfully authenticated 即为配置成功
  10. 克隆代码(免密成功)
    git clone git@github.com:用户名/仓库名.git
    四、新增第二个/多个 GitHub 账号密钥(关键)
    一台 Mac 管理多个 GitHub 账号,必须自定义密钥名称 + 配置 Host 区分,不能使用默认文件。
  11. 生成新账号独立密钥(自定义名称)
    ssh-keygen -t ed25519 -C "新账号邮箱" -f ~/.ssh/id_ed25519_work
  • -f:指定自定义文件名,不覆盖旧密钥
  • 全程回车,无密码
  1. 编辑多账号配置文件
    nano ~/.ssh/config
    写入以下完整配置(兼容旧账号+新账号):

原有个人主账号(默认密钥)

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519

新增工作/第二个账号(自定义密钥)

Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
保存退出:Ctrl+O → 回车 → Ctrl+X

  1. 添加新密钥到新 GitHub 账号
    pbcopy < ~/.ssh/id_ed25519_work.pub
    登录 新 GitHub 账号,粘贴添加 SSH 密钥。
  2. 测试新账号连通
    ssh -T git@github-work
  3. 新账号使用方式
    克隆、拉取、推送必须使用自定义 Host:
    git clone git@github-work:新账号用户名/仓库名.git
    五、密钥丢失应急处理(高频问题)
  4. 重要结论
  • ❌ 无法从 GitHub 恢复私钥,GitHub 仅保存公钥
  • ❌ 仅复制网页公钥无法登录,无私钥无法鉴权
  • ✅ 私钥丢失 = 直接作废,必须重新生成新密钥对
  1. 丢失后标准处理流程
  2. 本地重新生成一对新密钥
  3. 新公钥上传对应 GitHub 账号
  4. 删除 GitHub 后台旧的失效密钥(安全防泄露)
    六、日常密钥管理规范(必遵守)
  5. 查看本地所有密钥
    ls ~/.ssh
  6. 密钥权限标准(出错修复)
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_ed25519
    chmod 644 ~/.ssh/id_ed25519.pub
  7. 强制备份(最重要)
    配置完成后立即备份整个 .ssh 文件夹,防止重装系统丢失:
    cp -r ~/.ssh ~/Desktop/ssh-backup-$(date +%Y%m%d)
  8. 安全运维规则
  • 一台设备对应一个独立密钥,不共用、不混用
  • 更换设备/弃用设备,立即在 GitHub 删除对应密钥
  • 私钥禁止上传网络、禁止分享、禁止存代码仓库
  • 多账号必须通过 config 区分 Host,避免权限混乱
    七、常见报错速查
  • zsh: no such file or directory:未生成对应密钥文件,重新执行 ssh-keygen
  • Permission denied:公钥未上传、密钥不匹配、config 配置错误
  • Host authenticity prompt:正常安全校验,输入 yes 回车即可
  • Password authentication not supported:禁用 HTTPS 密码,改用 SSH 密钥
    八、文档总结(极简口诀)
    公钥传云端,私钥存本地;
    单账号默认名,多账号自定义;
    私钥丢不可逆,备份必须勤;
    多号配 Host,切换无冲突。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容