本地Git仓库使用SSH同步到Gitee仓库(码云)的完整指南
在代码开发中,将本地Git仓库与远程托管平台(如Gitee)同步是版本控制的核心操作。本文将详细介绍如何通过SSH协议(使用Ed25519加密算法)安全、高效地同步本地与Gitee仓库,结合现代加密技术提升安全性与性能。
一、为什么选择Ed25519加密算法?
Ed25519是一种基于椭圆曲线的现代数字签名算法(如知识库[2]、[4]所述),相比传统RSA算法有以下优势:
- 
更高的安全性
- 基于Edwards曲线设计,抗量子计算攻击能力更强。
 - 固定签名长度(64字节),减少侧信道攻击风险。
 
 - 
更快的性能
- 签名和验证速度比RSA快3-4倍(尤其适合频繁推送的场景)。
 - 密钥生成时间更短,密钥长度仅为32字节(RSA通常为2048或4096位)。
 
 - 
更简洁的实现
- 无需复杂参数配置,抗实现漏洞(如时序攻击)。
 
 
二、准备工作
1. 确认环境要求
- 本地Git环境 :已安装Git(未安装可前往Git官网下载)。
 - Gitee账号 :已注册并登录Gitee(Gitee官网)。
 - SSH客户端支持:确保本地SSH版本支持Ed25519(OpenSSH 6.5+)。
 - git仓库图形化管理工具SourceTree :SourceTree官网
 - SSH客户端支持:Windows 10及以上系统默认支持OpenSSH,若需验证版本:
 
            
            
              bash
              
              
            
          
          ssh -V
# 需确保版本为OpenSSH_8.1或更高,注意-V为大写
        
三、核心步骤详解
以Windows11系统为例
1. 配置git的用户信息与gitee进行匹配(本地操作)
此步骤非常重要,用户名和邮箱必须与 Gitee 注册信息一致,否则可能导致提交记录无法正确关联到你的账户。
要将本地 Git 用户信息与 Gitee 账户同步,主要是确保 用户名(user.name) 和 邮箱(user.email) 与你在 Gitee 上注册的账户信息一致。以下是详细步骤和注意事项:
步骤 1:查看当前 Git 用户信息
在本地电脑win+r 输入cmd打开命令框,运行以下命令检查本地 Git 配置的用户名和邮箱:
            
            
              bash
              
              
            
          
          git config user.name   # 查看用户名
git config user.email  # 查看邮箱
        
步骤 2:确认 Gitee 的用户信息
登录 Gitee 账户,进入 设置 -> 基本设置 ,找到你的 用户名 和 注册邮箱 。
进入gitee(码云)官网,登录个人账号后

查看gitee码云用户名

查看提交邮箱地址

找到提交邮箱,如果还未设置进行设置

步骤 3:同步用户信息
如果本地 Git 的用户名或邮箱与 Gitee 不一致,可以通过以下命令修改(本地电脑操作):
            
            
              bash
              
              
            
          
          git config --global user.name "Your Gitee Username"   # 设置全局用户名
git config --global user.email "your_gitee_email@example.com"  # 设置全局邮箱
        - 
如果你希望仅针对某个仓库同步用户信息,可以去掉
--global参数:bashgit config user.name "Your Gitee Username" git config user.email "your_gitee_email@example.com" 
2. 生成Ed25519 SSH密钥对(本地操作)
参考gitee官网:gitee生成添加SSH公钥
            
            
              bash
              
              
            
          
          # 打开Git Bash或PowerShell(以管理员身份运行更安全)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 回车三次(默认路径和空密码)
# 生成成功后,密钥文件路径为:
# 私钥:C:\Users\<你的用户名>\.ssh\id_ed25519
# 公钥:C:\Users\<你的用户名>\.ssh\id_ed25519.pub
        提示:若需自定义密钥名称或路径,可替换路径:
powershellssh-keygen -f "E:\git\ssh\gitee_ed25519" -t ed25519 -C "11111111@qq.com"
操作演示
输入命令生成密钥

按回车

再按回车


3. 将SSH公钥添加到Gitee
- 
查看公钥内容 :
找到生成密钥的路径,可以看到已经生成有两个秘钥,一个为私钥,.pub为公钥

用记事本打开.pub公钥文件查看复制内容

 - 
登录Gitee添加公钥:
- 进入 设置 > 安全设置 > SSH公钥。
 - 点击"添加公钥",粘贴公钥内容并保存。
登录进入码云后,点击个人头像进入设置

找到SSH公钥,复制粘贴刚刚生成的公钥

需要输入gitee账号密码进行验证操作

添加完毕后,可以看到已经有了一个秘钥,同时对应gitee的邮箱会有邮件提示,

 
 
4. 配置SSH客户端
接下来我们需要找到默认SSH配置文件读取路径,点击左下角开始,查看windwos当前用户

进入C盘找到找到用户

进入当前登录的windwos用户名

找到.ssh文件夹

若需管理多个SSH密钥(如同时连接Gitee和GitHub),可在~/.ssh/config文件中添加配置:
现在需要新建一个config配置文件,来指向之前生成的秘钥,假设有gitee和github则分别进行配置
            
            
              powershell
              
              
            
          
          # 新建或编辑配置文件:
notepad config
# 添加以下内容:
# gitee
Host gitee.com
  HostName gitee.com
  PreferredAuthentications publickey
  IdentityFile E:\git\ssh\gitee_ed25519  # 替换为你的私钥路径
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile                      # 替换为你的私钥路径
        在当前路径进入cmd命令框,执行notepad config 新建配置文件

填入配置信息保存

保存后修改文件扩展名,去掉txt

ssh连接测试,输入ssh -T git@gitee.com ,首次连接会弹出如下提示,输入yes即可,出现successfully表示成功

5. 关联本地仓库与Gitee远程仓库
5.1 新建gitee仓库
打卡码云官网,登录账号后新建仓库

填写仓库信息

在gitee新建完仓库后,可以安装示例的命令在本地的git仓库进行操作,也可以安装我的文档进行操作

场景1:已有本地仓库
新建一个,txt文档用于演示

在此文件下进入cmd命令框, 初始化当前文件夹为git仓库,执行git init

后续git操作步骤使用SourceTree进行演示,打开SourceTree添加git仓库


选择之前创建的git仓库

暂存文件

设置远端提交参考gitee地址


查看之前在gitee码云创建好的仓库,选择SSH复制地址

勾选默认远端,填写gitee码云URL地址

确定保存

设置SourceTree的SSH配置

选择之前生成好的ssh私钥(注意不是公钥!)

设置完毕后点提交

点击推送

勾选需要推送的远程仓库

成功推送到gitee远程仓库

在码云查看已推送文件

场景2:克隆远程仓库到本地
找到gitee码云仓库,复制对应的ssh地址


打开SourceTree 添加git仓库

选择克隆,复制gitee码云地址

可以看到对应的gitee仓库文件已经克隆下载成功

文件保存在克隆时选择的路径

四、常见问题与解决方案
1. 权限被拒绝(Permission denied)
- 原因:SSH密钥未正确配置或未添加到Gitee。
 - 解决步骤 :
- 
确认公钥已添加到Gitee的SSH公钥列表。
 - 
检查私钥文件权限(Windows默认权限通常足够,但需确保路径正确)。
 - 
重新测试SSH连接:
powershellssh -T -i "C:\Users\<用户名>\.ssh\id_ed25519" git@gitee.com 
 - 
 
2. SSH客户端未找到('ssh' 不是内部或外部命令)
- 原因:未安装OpenSSH或未添加环境变量。
 - 解决 :
- 安装OpenSSH客户端:
- 进入 控制面板 > 程序 > 启用或关闭Windows功能。
 - 勾选 OpenSSH客户端,重启系统。
 
 - 确认路径已添加到系统环境变量。
 
 - 安装OpenSSH客户端:
 
3. 密钥文件路径错误
- 解决 :
- 
确保路径使用反斜杠(
\)或双引号包裹路径:powershellssh -i "C:\Users\用户名\.ssh\id_ed25519" git@gitee.com 
 - 
 
五、总结
在Windows系统下,通过SSH(Ed25519加密)同步本地Git与Gitee仓库的操作与Linux系统类似,但需注意路径格式和环境配置。本文详细覆盖了从密钥生成、配置到代码推送的全流程,并提供了常见问题的解决方案。建议开发者:
- 优先使用Ed25519:安全性高且性能更优。
 - 定期更新SSH密钥:避免密钥泄露风险。
 - 使用Git Bash简化操作:Windows下推荐使用Git自带的终端工具。
 
附录:Ed25519与RSA的对比(Windows适用性)
| 特性 | Ed25519 | RSA | 
|---|---|---|
| 安全性 | 更高(抗量子攻击) | 较低(依赖大数分解) | 
| 速度 | 签名/验证快3-4倍 | 较慢 | 
| 密钥长度 | 固定32字节(公钥64字节) | 需2048/4096位 | 
| Windows兼容性 | 需OpenSSH 7.0+(默认支持) | 全平台兼容 | 
通过选择Ed25519,不仅提升了开发效率,也为代码安全提供了更可靠的保障。