一、为什么需要 SSH 密钥?
在使用 Git 与 GitHub 交互时,SSH 密钥是替代账号密码认证的更优方案。相比密码,它的核心优势在于:
- 免密登录:配置完成后,推送(push)、拉取(pull)代码无需重复输入 GitHub 账号密码,大幅提升开发效率。
- 安全验证:采用非对称加密技术,私钥仅保存在本地设备,公钥可公开配置,能有效抵御密码泄露、中间人攻击等风险,安全性远超密码认证。
- 多平台兼容:一套配置逻辑适用于 GitHub、GitLab、Bitbucket 等主流代码托管平台,通用性强。
二、配置步骤详解(全系统适配)
开始前,确保本地已安装 Git(可通过终端执行 git --version 验证),并拥有 GitHub 账号。
1. 检查现有密钥
首先检查本地是否已存在 SSH 密钥,避免重复生成。
# macOS/Linux 系统(终端执行)
ls -al ~/.ssh
# Windows 系统(PowerShell/CMD 执行)
dir %USERPROFILE%\.ssh
执行后若出现以下文件,说明已存在对应算法的密钥,可直接跳过生成步骤,进入启动代理环节;若无则需生成新密钥。
id_rsa.pub:RSA 算法公钥(兼容性强,适用于旧系统)。id_ed25519.pub:ED25519 算法公钥(推荐,加密强度更高、性能更优)。authorized_keys:已授权的公钥列表,用于本地认证管理。
2. 生成新 SSH 密钥
优先选择 ED25519 算法,若需兼容老旧服务器或设备,可改用 RSA 算法(4096 位及以上,安全性达标)。
# 推荐:ED25519 算法(替换为你的 GitHub 绑定邮箱)
ssh-keygen -t ed25519 -C "[email protected]"
# 兼容旧系统:RSA 算法(4096 位,加密强度足够)
ssh-keygen -t rsa -b 4096 -C "[email protected]"
运行后终端会提示你操作,注意以下几点:
- 保存路径:直接按回车使用默认路径(
~/.ssh/id_ed25519或~/.ssh/id_rsa),无需自定义,避免后续配置路径混乱。 - 密码设置:建议设置强密码(字母 + 数字 + 特殊符号),提升私钥安全性;若追求极致便捷(需承担轻微安全风险),可直接回车留空,实现完全免密使用。
3. 启动 SSH 代理(守护进程)
SSH 代理用于管理本地私钥,避免每次操作都需重新验证私钥,需手动启动(部分系统默认不自动启动)。
# macOS/Linux 系统(终端执行,启动并绑定环境变量)
eval "$(ssh-agent -s)"
# Windows 系统(PowerShell 以普通权限执行)
Start-Service ssh-agent
启动成功提示:macOS/Linux 会显示代理进程 ID;Windows 无明显提示,可通过 Get-Service ssh-agent 查看服务状态,确保 Status 为'Running'。

