在 Mac 上配置 GitHub SSH 密钥:一步到位

完整指南:生成 SSH 密钥、配置 ssh-agent 和 ~/.ssh/config、多账号切换以及连接测试,快速让 Mac 安全访问 GitHub。

需要在 Mac 上通过 SSH 访问 GitHub?下面这份笔记把生成密钥、添加公钥、配置多账号、测试连通性等步骤压缩在一篇里,按顺序操作即可。

1) 生成 SSH 密钥

ssh-keygen -t ed25519 -C "your_personal_email@example.com"
  • 推荐 ED25519,安全性足够且生成速度快。
  • 默认保存到 ~/.ssh/id_ed25519;如需区分用途,可改名为 id_rsa_personal 等。

2) 把密钥交给 ssh-agent

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

如果你给私钥加了密码,ssh-agent 会帮你缓存解密后的会话,避免频繁输入。

3) 在 GitHub 添加公钥

pbcopy < ~/.ssh/id_ed25519.pub
  • 进入 GitHub 网页:Settings → SSH and GPG keys → New SSH key。
  • 粘贴公钥并保存。

4) 配置 ~/.ssh/config(支持多账号)

nano ~/.ssh/config

示例配置:

# 个人账号
Host personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519

# 公司账号
Host work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
  • 克隆时对应使用 git@personal:owner/repo.gitgit@work:owner/repo.git
  • 如果遇到“权限过高”报错,执行 chmod 600 ~/.ssh/id_ed25519

5) 测试连接

ssh -T git@github.com

出现 “Hi xxx! You’ve successfully authenticated…” 即表示连通正常;如提示 host key 变更,确认无 MITM 风险后按提示处理。

6) 克隆仓库

git clone git@personal:owner/repo.git

如果你使用公司账号,换成 git@work:owner/repo.git 即可。

常见问题速记

  • 多账号冲突:为不同密钥取不同 Host 别名(如上),并在克隆和远端 URL 里使用对应别名。
  • 私钥权限:保持 600;.ssh 目录保持 700,避免权限过宽被 SSH 拒绝。
  • 换新设备:重新生成密钥或将私钥安全迁移到新设备,再在 GitHub 添加公钥。

现在,你已经完成了从生成密钥到连通测试的全流程,可以安心用 SSH 操作 GitHub。