Mac首次配置Git需先设全局用户名和邮箱(git config --global user.name/email),再生成并添加SSH公钥(推荐ed25519),最后将仓库远程地址切换为SSH格式,否则提交失败或频繁输密码。

Mac上首次配置Git时,必须先设置全局用户名和邮箱,否则后续提交代码会失败或身份无法识别;同时要生成并添加SSH公钥,否则每次git push/pull都会被要求输入账号密码。
配置Git全局用户名和邮箱
这一步是Git提交记录的“身份证”,不设就无法正常提交,且后续无法关联到GitHub/Gitee等平台账户。
打开终端,依次执行以下两条命令:
git config --global user.name "YourName"
git config --global user.email "youremail@example.com"
请把 【YourName】 替换为你在 GitHub 或 Gitee 上注册时使用的昵称(不是登录账号),【youremail@example.com】 替换为平台绑定的邮箱。两处必须完全一致,否则远程平台无法匹配你的提交身份。
执行完成后,运行 git config --list 验证是否写入成功——输出中应包含 user.name 和 user.email 两行。
检查本地是否已有SSH密钥
很多用户其实已经存在密钥但不知道,盲目重生成会导致旧仓库连接中断。先确认再操作。
在终端中输入:ls -al ~/.ssh
观察输出结果:若看到 id_ed25519 和 id_ed25519.pub(或 id_rsa 和 id_rsa.pub),说明已有密钥,可跳过生成步骤;若提示 No such file or directory 或仅列出 known_hosts 等文件,则需新建。
生成新的SSH密钥(Ed25519推荐)
现代 macOS(12.0+)默认支持 Ed25519 算法,比 RSA 更安全、密钥更短、生成更快。这是当前最佳实践。
方法一:生成 Ed25519 密钥(首选)
在终端中运行:ssh-keygen -t ed25519 -C "youremail@example.com"
其中邮箱必须与上一步 git config 设置的邮箱完全一致,否则平台验证会失败。
按回车接受默认保存路径(~/.ssh/id_ed25519)→ 输入 passphrase(建议设一个,防止私钥被窃后直接滥用;若留空则无密码保护)→ 再次回车确认。
方法二:生成 RSA 密钥(兼容旧系统)
如遇 ssh-keygen 报错 “unknown key type ed25519”,说明 OpenSSL 版本过低,改用:ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
对 GitHub Actions 工作流 YAML 文件进行 lint 与验证,检查常见错误、安全隐患、已废弃的操作以及最佳实践。适用于要求进行代码检查、验证等场景。
生成成功后,~/.ssh 目录下会出现两个关键文件:id_ed25519(私钥,绝不可泄露)和 id_ed25519.pub(公钥,用于上传)。
将公钥添加到GitHub/Gitee/Coding等平台
第一步:复制公钥内容
运行:cat ~/.ssh/id_ed25519.pub
终端会输出一长串以 ssh-ed25519 开头、以邮箱结尾的文本。全选→右键复制(或 Command+C),注意不能漏字符、不能多空格、不能带换行。
第二步:登录代码平台并粘贴
以 GitHub 为例:登录 → 右上角头像 → Settings → SSH and GPG keys → New SSH key → Title 填“MacBook Pro”之类易识别的名称 → Key 框内粘贴刚才复制的内容 → Add SSH key
以 Gitee 为例:登录 → 右上角头像 → 个人设置 → SSH公钥 → 新增公钥 → 填写名称 + 粘贴公钥 → 提交时需再次输入登录密码验证
第三步:测试连接有效性
在终端执行:ssh -T git@github.com
若返回 Hi username! You've successfully authenticated… 说明 SSH 公钥已生效;若提示 Permission denied,则检查公钥是否复制完整、是否粘贴到了正确平台、远程仓库 URL 是否为 SSH 格式(如 git@github.com:user/repo.git)。
切换现有仓库为SSH协议(关键补救步骤)
很多人配置完SSH却仍被要求输密码,是因为本地仓库仍使用 HTTPS 地址。必须手动切换。
进入项目根目录,运行:git remote -v
若看到 origin 一行以 https:// 开头,说明正在走 HTTPS 协议。
执行:git remote set-url origin git@github.com:YourUsername/RepoName.git
注意把 YourUsername 和 RepoName 替换成你的真实用户名和仓库名。Gitee 用户请将 github.com 改为 gitee.com,格式为 git@gitee.com:YourUsername/RepoName.git。
再次运行 git remote -v,确认 origin 已变为 git@ 开头的地址。此时 git push 就不再索要密码了。

















