完整解决方案步骤:
1. 检查并生成 SSH 密钥
# 打开 Git Bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
全程按回车(使用默认路径,不设密码)
-
密钥将生成在:
C:\Users\<用户名>\.ssh\
目录下
2. 添加密钥到 SSH Agent
# 启动 ssh-agent
eval $(ssh-agent -s)# 添加私钥
ssh-add ~/.ssh/id_rsa
3. 复制公钥到剪贴板
# 方法1:使用 clip 命令
cat ~/.ssh/id_rsa.pub | clip# 方法2:手动打开文件
explorer .
# 然后打开 .ssh 文件夹,用记事本打开 id_rsa.pub 文件
4. 在 Gitee 添加公钥
-
登录 gitee.com
-
右上角头像 → 设置 → SSH 公钥
-
标题:
Windows PC
(可自定义) -
粘贴公钥内容(以
ssh-rsa AAA...
开头) -
点击 确定
5. 验证连接
ssh -T git@gitee.com
✅ 成功提示:Hello <你的用户名>! You've successfully authenticated...
6. 检查并修正远程仓库地址
git remote -v
如果显示 HTTPS 地址(以 https://
开头),需改为 SSH 地址:
git remote set-url origin git@gitee.com:<用户名>/<仓库名>.git
注意:地址格式必须是
git@gitee.com:用户名/仓库名.git
7. 重新尝试推送
git push -u origin master
常见问题排查:
情况1:密钥未正确加载
# 检查已加载密钥
ssh-add -l# 若无显示,手动添加
ssh-add ~/.ssh/id_rsa
情况2:多密钥冲突
创建 ~/.ssh/config
文件(无后缀名):
Host gitee.comHostName gitee.comIdentityFile ~/.ssh/id_rsaUser git
情况3:Windows 权限问题
-
右键点击
.ssh
文件夹 → 属性 → 安全 -
确保你的用户有 完全控制 权限
-
同样检查
id_rsa
和id_rsa.pub
文件权限
情况4:防火墙/杀毒软件拦截
-
临时禁用 Windows Defender 防火墙
-
将 Git Bash 加入杀毒软件白名单
备选方案:使用 HTTPS 推送
如果 SSH 仍不可用:
# 切换为 HTTPS 地址
git remote set-url origin https://gitee.com/<用户名>/<仓库名>.git# 推送时输入 Gitee 账号密码
git push -u origin master
注意:从 2021 年起,Git 要求使用个人访问令牌代替密码
成功推送后的输出示例:
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 285 bytes | 285.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To gitee.com:yourname/repo.gita1b2c3d..f4e5d6c master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
如果仍然遇到问题,请提供以下信息以便进一步排查:
-
ssh -T git@gitee.com -v
的完整输出 -
git remote -v
的输出 -
你的公钥文件前10个字符(用于验证是否正确添加)