本地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 "[email protected]" # 设置全局邮箱
-
如果你希望仅针对某个仓库同步用户信息,可以去掉
--global
参数:bashgit config user.name "Your Gitee Username" git config user.email "[email protected]"
2. 生成Ed25519 SSH密钥对(本地操作)
参考gitee官网:gitee生成添加SSH公钥
bash
# 打开Git Bash或PowerShell(以管理员身份运行更安全)
ssh-keygen -t ed25519 -C "[email protected]"
# 回车三次(默认路径和空密码)
# 生成成功后,密钥文件路径为:
# 私钥:C:\Users\<你的用户名>\.ssh\id_ed25519
# 公钥:C:\Users\<你的用户名>\.ssh\id_ed25519.pub
提示:若需自定义密钥名称或路径,可替换路径:
powershellssh-keygen -f "E:\git\ssh\gitee_ed25519" -t ed25519 -C "[email protected]"
操作演示
输入命令生成密钥
按回车
再按回车
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 [email protected]
,首次连接会弹出如下提示,输入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" [email protected]
-
2. SSH客户端未找到('ssh' 不是内部或外部命令)
- 原因:未安装OpenSSH或未添加环境变量。
- 解决 :
- 安装OpenSSH客户端:
- 进入 控制面板 > 程序 > 启用或关闭Windows功能。
- 勾选 OpenSSH客户端,重启系统。
- 确认路径已添加到系统环境变量。
- 安装OpenSSH客户端:
3. 密钥文件路径错误
- 解决 :
-
确保路径使用反斜杠(
\
)或双引号包裹路径:powershellssh -i "C:\Users\用户名\.ssh\id_ed25519" [email protected]
-
五、总结
在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,不仅提升了开发效率,也为代码安全提供了更可靠的保障。