在全新的 macOS 上配置 Git SSH 推荐使用目前最安全、高效的 ED25519 算法,并结合 macOS 的 钥匙串(Keychain) 功能实现密码托管。同时,为了避免部分网络环境下 SSH 默认 22 端口被墙或被屏蔽的问题,本教程默认采用 GitHub 官方推荐的 443 端口 绕行方案。
第一步:生成全新的 ED25519 SSH 密钥
打开终端 (Terminal),执行以下命令来生成密钥对。请将双引号内的邮箱替换为你注册 GitHub 时使用的邮箱:
ssh-keygen -t ed25519 -C "your_email@example.com"
执行后的交互提示:
- 保存路径: 提示
Enter file in which to save the key...时,直接按 Enter 键,接受默认路径(~/.ssh/id_ed25519)。 - 设置密码: 提示
Enter passphrase...时,建议输入一个安全密码(输入时屏幕不会有任何显示,盲打即可),然后按 Enter 确认。再次输入以验证。
第二步:配置 SSH 代理与 443 端口绕行规则
为了让 SSH 绕过可能被屏蔽的 22 端口,并且集成 macOS 的钥匙串功能,我们需要修改或创建 SSH 配置文件。
-
在后台启动 ssh-agent:
eval "$(ssh-agent -s)" -
创建并打开 SSH 配置文件:
如果文件不存在,先创建它:
touch ~/.ssh/config -
编辑配置文件:
使用你熟悉的编辑器(如
nano ~/.ssh/config)打开文件,将以下内容完整复制并粘贴进去,然后保存:Host github.com Hostname ssh.github.com Port 443 User git AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519原理解析:
Hostname和Port:强制让终端在连接github.com时,实际访问ssh.github.com的443端口,成功绕过 22 端口的网络限制。UseKeychain yes:告诉 macOS 将密码存入系统钥匙串,以后重启电脑也不用重复输入 passphrase。
第三步:将私钥添加到 SSH Agent 和 macOS 钥匙串
执行以下命令,将你刚刚生成的私钥正式交给系统管理:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
此时系统会要求你输入在第一步中设置的 passphrase。输入完成后,密码就会被安全地保存在 macOS 的钥匙串中。
第四步:复制公钥并添加到 GitHub
私钥留在本地,公钥需要上传到 GitHub。我们可以使用 macOS 自带的 pbcopy 命令一键将公钥内容复制到系统剪贴板:
pbcopy < ~/.ssh/id_ed25519.pub
前往 GitHub 进行配置:
- 登录 GitHub,点击右上角头像,选择 Settings。
- 在左侧菜单栏找到并点击 SSH and GPG keys。
- 点击绿色的 New SSH key 按钮。
- Title:随便填一个能识别这台电脑的名字(例如:
MacBook Pro 2026)。 - Key type:保持默认的
Authentication Key。 - Key:将刚刚复制到剪贴板的内容直接粘贴到这里。
- 点击 Add SSH key 保存。
第五步:验证连接是否成功
回到终端,输入以下命令来测试我们刚刚配置的所有链路是否通畅:
ssh -T git@github.com
如果首次连接,系统可能会提示一段警告,询问是否信任该主机的指纹(Are you sure you want to continue connecting (yes/no/[fingerprint])?),请输入 yes 并按回车。
当你看到如下输出时,说明大功告成:
Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.