本地Git仓库SSH同步到Gitee(码云)仓库的完整指南(附:SourceTree同步仓库)

本地Git仓库使用SSH同步到Gitee仓库(码云)的完整指南

在代码开发中,将本地Git仓库与远程托管平台(如Gitee)同步是版本控制的核心操作。本文将详细介绍如何通过SSH协议(使用Ed25519加密算法)安全、高效地同步本地与Gitee仓库,结合现代加密技术提升安全性与性能。


一、为什么选择Ed25519加密算法?

Ed25519是一种基于椭圆曲线的现代数字签名算法(如知识库[2]、[4]所述),相比传统RSA算法有以下优势:

  1. 更高的安全性

    • 基于Edwards曲线设计,抗量子计算攻击能力更强。
    • 固定签名长度(64字节),减少侧信道攻击风险。
  2. 更快的性能

    • 签名和验证速度比RSA快3-4倍(尤其适合频繁推送的场景)。
    • 密钥生成时间更短,密钥长度仅为32字节(RSA通常为2048或4096位)。
  3. 更简洁的实现

    • 无需复杂参数配置,抗实现漏洞(如时序攻击)。

二、准备工作

1. 确认环境要求

  • 本地Git环境 :已安装Git(未安装可前往Git官网下载)。
  • Gitee账号 :已注册并登录Gitee(Gitee官网)。
  • SSH客户端支持:确保本地SSH版本支持Ed25519(OpenSSH 6.5+)。
  • git仓库图形化管理工具SourceTreeSourceTree官网
  • 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 参数:

    bash 复制代码
    git 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

提示:若需自定义密钥名称或路径,可替换路径:

powershell 复制代码
ssh-keygen -f "E:\git\ssh\gitee_ed25519" -t ed25519 -C "[email protected]"

操作演示

输入命令生成密钥

按回车

再按回车

3. 将SSH公钥添加到Gitee

  1. 查看公钥内容

    找到生成密钥的路径,可以看到已经生成有两个秘钥,一个为私钥,.pub为公钥

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

  2. 登录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。
  • 解决步骤
    1. 确认公钥已添加到Gitee的SSH公钥列表。

    2. 检查私钥文件权限(Windows默认权限通常足够,但需确保路径正确)。

    3. 重新测试SSH连接:

      powershell 复制代码
      ssh -T -i "C:\Users\<用户名>\.ssh\id_ed25519" [email protected]

2. SSH客户端未找到('ssh' 不是内部或外部命令)

  • 原因:未安装OpenSSH或未添加环境变量。
  • 解决
    • 安装OpenSSH客户端:
      1. 进入 控制面板 > 程序 > 启用或关闭Windows功能
      2. 勾选 OpenSSH客户端,重启系统。
    • 确认路径已添加到系统环境变量。

3. 密钥文件路径错误

  • 解决
    • 确保路径使用反斜杠(\)或双引号包裹路径:

      powershell 复制代码
      ssh -i "C:\Users\用户名\.ssh\id_ed25519" [email protected]

五、总结

在Windows系统下,通过SSH(Ed25519加密)同步本地Git与Gitee仓库的操作与Linux系统类似,但需注意路径格式和环境配置。本文详细覆盖了从密钥生成、配置到代码推送的全流程,并提供了常见问题的解决方案。建议开发者:

  1. 优先使用Ed25519:安全性高且性能更优。
  2. 定期更新SSH密钥:避免密钥泄露风险。
  3. 使用Git Bash简化操作:Windows下推荐使用Git自带的终端工具。

附录:Ed25519与RSA的对比(Windows适用性)

特性 Ed25519 RSA
安全性 更高(抗量子攻击) 较低(依赖大数分解)
速度 签名/验证快3-4倍 较慢
密钥长度 固定32字节(公钥64字节) 需2048/4096位
Windows兼容性 需OpenSSH 7.0+(默认支持) 全平台兼容

通过选择Ed25519,不仅提升了开发效率,也为代码安全提供了更可靠的保障。

相关推荐
geekmice2 小时前
多个git账户团队写作
git
森叶3 小时前
linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
linux·git·swoole
qziovv3 小时前
GIT 撤销上次推送
git
Cloud_Air7544 小时前
本地合并多个仓库,保留Commit历史
git·github
high20116 小时前
【Git】-- 处理 Git 提交到错误分支的问题
git
axinawang7 小时前
在eclipse中通过git放弃某个版本之前所有的更新
git
may_一一9 小时前
终端SSH连接工具SecureCRT安装和连接Linux
运维·服务器·ssh
昇腾CANN11 小时前
昇腾CANN算子共建仓CANN-Ops正式上线Gitee,首批算子已合入
gitee·cann
菜鸟xy..11 小时前
Typora 小乌龟 git 上传到gitee仓库教程
git·gitee
小old弟14 小时前
Git简明指南:从入门到基本操作
前端·git