
1. 为什么需要SSH免密连接每次用HTTPS协议推送代码到Gitee都要输账号密码SSH协议就是来解决这个痛点的。想象一下你家门锁HTTPS相当于每次进门都要找物业拿钥匙而SSH则是录入指纹后直接刷手指进门。实测在Windows下配置成功后git push操作速度提升30%以上特别是大文件传输时更稳定。我最初用HTTPS协议时经常遇到密码错误提示明明输入正确却报错。后来发现Windows凭据管理器会缓存旧密码而SSH完全避开了这个坑。两种协议核心区别在于HTTPS通用性强但每次需认证适合临时克隆他人仓库SSH加密通道免密操作适合高频推送的个人项目2. 生成SSH密钥对2.1 选择你的武器Git Bash还是PowerShell在Windows开始菜单右键选择Git Bash推荐或PowerShell。我习惯用Git Bash因为其支持完整的Linux命令。打开后先检查SSH客户端状态ssh -V # 正常应显示OpenSSH_8.8p1, OpenSSL 1.1.1l如果报错需要到「设置→应用→可选功能」添加OpenSSH客户端。接着生成密钥对ssh-keygen -t ed25519 -C 你的Gitee邮箱这里-t ed25519比传统RSA算法更安全快速。执行后会询问保存路径直接回车用默认位置C:\Users\你的用户名\.ssh。注意如果公司网络有端口限制可能需要额外配置-b 4096指定密钥长度2.2 密钥文件说明进入.ssh目录会看到id_ed25519私钥相当于家门钥匙绝不能外泄id_ed25519.pub公钥相当于钥匙孔可公开known_hosts记录已验证过的主机首次连接自动生成用记事本打开公钥文件内容类似ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJx7jO7V... 你的Gitee邮箱3. 在Gitee绑定公钥3.1 网页端操作登录Gitee → 右上角头像 → 「设置」左侧「安全设置」→ 「SSH公钥」标题栏输入设备名如MyWorkPC粘贴公钥内容整个id_ed25519.pub文件内容点击「确定」完成添加3.2 验证绑定回到Git Bash执行ssh -T gitgitee.com首次连接会提示确认指纹输入yes后看到Hi 你的用户名! Youve successfully authenticated...如果报Permission denied可能是公钥未正确粘贴检查首尾是否完整密钥文件权限问题右击.ssh文件夹 → 属性 → 取消只读4. 配置本地Git仓库4.1 修改远程仓库地址已有仓库需切换协议执行git remote set-url origin gitgitee.com:用户名/仓库名.git新克隆仓库时直接使用SSH地址git clone gitgitee.com:用户名/仓库名.git4.2 测试推送代码修改文件后执行标准流程git add . git commit -m 测试SSH推送 git push成功推送后会发现不再要求输入密码同时Gitee提交记录会显示「通过SSH推送」。5. 常见问题排查5.1 连接超时问题如果出现Connection timed out可能是防火墙阻拦。尝试# 测试端口连通性 telnet gitee.com 22 # 若不通需添加防火墙规则允许22端口5.2 多账号管理需要为不同平台如GitHub配置密钥时在.ssh目录创建config文件# Gitee Host gitee.com HostName gitee.com IdentityFile ~/.ssh/id_ed25519 # GitHub Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa_github5.3 密钥失效处理定期更换密钥更安全重新生成后需删除Gitee旧公钥更新本地known_hosts文件重新执行验证步骤6. 进阶技巧6.1 使用Pageant管理密钥对于频繁切换账号的用户可以安装PuTTY套件中的Pageant工具实现密钥的图形化管理。启动后任务栏会出现图标右键可添加私钥。6.2 自动化脚本将常用操作写成Bash脚本#!/bin/bash # 自动推送脚本 git add . git commit -m Auto update $(date) git push保存为push.sh后每次双击即可完成推送。