什么是Git公钥和私钥
Git本身不管理账号密码的长期存储,它依赖SSH协议来验证身份。公钥就像你家门锁的钥匙孔,可以公开给别人看;私钥则是你手里的钥匙,必须死死保管好。在Git协作中,你把公钥交给代码托管平台,平台记录下这把钥匙孔的特征。之后你用私钥去连接,平台核对匹配后就会放行。整个过程无需反复输入用户名和密码,安全且高效。理解这对概念是后续所有操作的基础。
为什么必须用密钥对登录
很多开发者习惯每次推送代码都敲密码,这在实际开发中极其拖慢进度。更关键的是,纯密码传输容易被中间人截获,而SSH密钥对采用非对称加密技术,私钥永远不会离开你的电脑。即使网络流量被监听,攻击者拿到的也只是无法破解的密文。此外,企业级项目通常强制要求使用密钥认证,这是合规与安全的基础门槛。掌握这套流程,能彻底告别权限报错和重复认证,提升团队协作效率。
Windows环境一键生成指南
打开Git Bash终端,输入 ssh-keygen -t ed25519 -C your_email@example.com 命令。系统会提示保存路径,直接按回车即可,默认存放在用户目录下的.ssh文件夹里。接下来会让你设置 passphrase,简单按两次回车跳过即可,生产环境建议设置复杂密码以防私钥泄露。生成成功后,终端会显示一串随机字符指纹。此时进入 C:\Users\你的用户名\.ssh 目录,找到 id_ed25519.pub 文件,用记事本打开并全选复制内容,注意不要多带空格或换行。
macOS与Linux快速操作
终端用户操作逻辑完全一致。执行 ssh-keygen -t rsa -b 4096 -C your_email@example.com 即可。Mac用户如果忘记保存位置,可以用 cat ~/.ssh/id_rsa.pub 直接打印公钥内容到屏幕,然后右键复制。Linux服务器环境下,建议将私钥权限设置为 600,命令为 chmod 600 ~/.ssh/id_rsa,这样只有当前用户可读写,避免其他账户窃取。不同发行版的路径可能略有差异,但核心文件命名规则相同,保持整洁的目录结构很重要。
绑定到代码托管平台
登录你的Git平台账号,依次点击头像下拉菜单中的 Settings 或 设置,找到 SSH Keys 或 部署密钥 选项。点击 Add SSH Key 按钮,粘贴刚才复制的公钥字符串,标题栏随意填写便于识别的设备名,最后保存。添加完成后,务必执行测试命令 ssh -T git@github.com ,若终端返回 successfully authenticated,说明链路已打通,后续 clone 和 push 都将自动通过密钥认证。多设备使用需分别上传各自的公钥。
常见报错与解决思路
遇到 Permission denied 时,先检查公钥是否真的添加成功,再确认 git remote 地址是 git@xxx.com 开头的 SSH 格式而非 https 链接。若提示 host key verification failed,通常是首次连接未知主机时的安全拦截,输入 yes 确认即可。私钥意外丢失的情况极少发生,但一旦更换电脑,只需在新机器上重新生成并上传公钥。定期备份 .ssh 目录下的两个核心文件,能省去大量重装配置的麻烦。建议配合 git config 命令统一设置全局用户信息,避免提交记录混乱。



