需生成SSH密钥对并配置ssh-agent:先检查~/.ssh下是否存在id_ed25519等密钥文件,无则用ssh-keygen -t ed25519 -C "邮箱"生成;再执行eval "$(ssh-agent -s)"启动代理,用ssh-add --apple-use-keychain ~/.ssh/id_ed25519添加私钥并授权钥匙串保存;最后pbcopy复制公钥上传GitHub。

要在 macOS 上实现 Git 推送 GitHub 时免输账号密码,必须生成一对 SSH 密钥(公钥+私钥),再将公钥上传到 GitHub 账户,并让本地 ssh-agent 管理私钥——整个流程不依赖 HTTPS 凭据,也不需要每次输入密码短语(前提是已配置 ssh-agent 缓存)。
检查是否已有 SSH 密钥
打开终端,执行:
ls -al ~/.ssh
如果看到 id_ed25519 和 id_ed25519.pub(或 id_rsa 和 id_rsa.pub),说明已有密钥,可跳过生成步骤;若提示“No such file or directory”,则需新建密钥对。
生成新的 SSH 密钥对
在终端中运行以下命令,将 your_email@example.com 替换为你注册 GitHub 的邮箱:
ssh-keygen -t ed25519 -C "your_email@example.com"
系统会提示“Enter a file in which to save the key”——直接按回车使用默认路径 ~/.ssh/id_ed25519。【不要手动改名或指定非标准路径,否则后续 ssh-add 容易失败】
接着输入并确认密码短语(passphrase)。这一步建议设置,但非强制;若留空则每次使用私钥都不再提示密码,安全性下降。
启动 ssh-agent 并添加私钥
第一步:启用 ssh-agent
eval "$(ssh-agent -s)"
第二步:将私钥加载进 agent
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
注意:macOS 13 及以上系统必须用 --apple-use-keychain 参数,否则钥匙串不会保存密码短语,导致下次终端重启仍需重复输入。执行后系统会弹出“钥匙串访问”窗口,勾选【始终允许】并输入管理员密码确认,否则 ssh-add 仅本次生效。
复制公钥内容到剪贴板
运行以下命令即可一键复制:
pbcopy
这条命令没有输出,但公钥内容已进入系统剪贴板。你可以新开一行输入 cat ~/.ssh/id_ed25519.pub 回车验证是否复制成功——开头应为 ssh-ed25519 AAAAC3NzaC…
将公钥添加到 GitHub 账户
第一步:登录 GitHub → 点击右上角头像 → Settings → 左侧菜单选择 SSH and GPG keys
第二步:点击 New SSH key 按钮
第三步:Title 栏填写设备标识,例如 MacBook-Pro-2025
第四步:在 Key 栏粘贴刚刚复制的公钥内容(确保是完整的一行,无换行、无空格截断)
第五步:点击 Add SSH key
GitHub 会要求你再次输入账户密码完成二次验证,输入后即保存成功。
测试 SSH 连接是否生效
在终端中运行:
首次连接会提示“You've successfully authenticated…”并显示你的 GitHub 用户名。如果返回 “Hi username! You've successfully authenticated…” 就说明密钥已正确关联且 ssh-agent 正常工作。
将远程仓库 URL 切换为 SSH 协议
进入你的本地 Git 项目目录,执行:
git remote set-url origin git@github.com:username/repo-name.git
其中 username 是你的 GitHub 用户名,repo-name 是仓库名。执行后可用 git remote -v 查看是否已更新为 git@github.com 开头的地址。











