当前位置: 首页 > news >正文

经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)

从生成 SSH 密钥到成功连接测试的经验笔记(以Gitee为例)

1. 生成 SSH 密钥对
  1. 选择合适的加密算法

    • ED25519

      • 密钥长度:私钥 256 位(32 字节),公钥 256 位(32 字节),签名 512 位(64 字节)。
      • 安全性:提供 128 位的安全性,适用于大多数场景。
      • 性能:高效,适用于资源受限的设备。
      • 命令
        ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_gitee
        
    • RSA

      • 密钥长度:建议使用 4096 位(至少 2048 位)。
      • 安全性:提供较高的安全性,但性能略低于 ED25519。
      • 命令
        ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_gitee
        
    • ECDSA

      • 支持的曲线
        • nistp256:256 位密钥长度,提供 128 位的安全性。
        • nistp384:384 位密钥长度,提供 192 位的安全性。
        • nistp521:521 位密钥长度,提供 256 位的安全性。
      • 安全性:根据所选曲线的不同,提供不同程度的安全性。
      • 命令
        ssh-keygen -t ecdsa -b 256 -C "your_email@example.com" -f ~/.ssh/id_ecdsa_gitee
        
    • Ed448

      • 密钥长度:私钥 448 位(56 字节),公钥 448 位(56 字节),签名 912 位(114 字节)。
      • 安全性:提供 224 位的安全性,适用于需要更高安全性的场景。
      • 命令
        ssh-keygen -t ed448 -C "your_email@example.com" -f ~/.ssh/id_ed448_gitee
        
  2. 生成 Gitee 的 ED25519 密钥对

    ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_gitee
    

    在生成密钥对时,系统会提示你输入一个 passphrase。请务必记住这个 passphrase,它用于保护你的私钥。

  3. 邮箱命名最佳实践

    • 包含用户名和设备信息:将用户名和设备信息包含在邮箱地址中,可以清楚地知道这把密钥是哪个用户在哪个设备上生成的。例如:

      ssh-keygen -t ed25519 -C "alice@laptop"
      
    • 包含用途:如果密钥用于特定的项目或服务,可以在邮箱地址中包含这些信息。例如:

      ssh-keygen -t ed25519 -C "alice@projectA"
      
    • 包含日期:在邮箱地址中包含生成日期,可以帮助你追踪密钥的生命周期。例如:

      ssh-keygen -t ed25519 -C "alice@laptop-20231001"
      
    • 包含电子邮件地址:使用电子邮件地址作为邮箱地址的一部分,可以方便地与他人共享密钥时进行识别。例如:

      ssh-keygen -t ed25519 -C "alice@example.com"
      
    • 组合信息:可以将上述信息组合起来,创建更详细的邮箱地址。例如:

      ssh-keygen -t ed25519 -C "alice@laptop-20231001-projectA"
      
  4. 查看生成的密钥文件

    ls ~/.ssh
    

    你应该看到以下文件:

    • id_ed25519_gitee
    • id_ed25519_gitee.pub
2. 配置 ~/.ssh/config 文件
  1. 编辑 ~/.ssh/config 文件
    # Gitee
    Host gitee.comHostName gitee.comUser gitIdentityFile ~/.ssh/id_ed25519_gitee
    
3. 将公钥添加到 Gitee
  1. 复制公钥内容

    cat ~/.ssh/id_ed25519_gitee.pub
    
  2. 登录 Gitee 账户

    • 进入 Gitee 的设置页面。
    • 找到“SSH 公钥”或“部署密钥”部分。
    • 粘贴你复制的公钥内容,并保存。
4. 测试连接
  1. 测试与 Gitee 的连接

    ssh -T git@gitee.com
    
  2. 首次连接提示:如果这是你第一次连接到该服务器,系统会显示一条消息,询问你是否要继续连接。这条消息通常看起来像这样:

    The authenticity of host 'gitee.com (IP_ADDRESS)' can't be established.
    RSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    

    Gitee SSH 密钥指纹
    以下是 Gitee 的公钥指纹:
    SHA256:+ULzij2u99B9eWYFTw1Q4ErYG/aepHLbu96PAUCoV88 (ED25519)
    SHA256:meTsVSCgOas8fBnJyx8EPlUJr6iQ96riFmCFPfUkDtU (RSA)
    SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc (ECDSA)

  3. 确认并保存主机信息:输入 yes 并按回车键。这一步骤会让 SSH 客户端将服务器的公钥添加到你的 ~/.ssh/known_hosts 文件中。这意味着下次你再连接时,SSH 客户端可以验证服务器的身份,从而提高安全性。

  4. 验证成功的信息:如果一切正常,你应该会看到类似如下所示的消息:

    Hi username! You've successfully authenticated, but Gitee does not provide shell access.
    
  5. 错误处理:如果你遇到任何错误,比如认证失败或无法建立连接,请检查你的 SSH 密钥是否已正确添加到 Gitee 账户中,或者是否有网络问题阻止了你连接到 Gitee。

5. 克隆或推送代码
  1. 克隆 Gitee 仓库

    git clone git@gitee.com:username/repo.git
    
  2. 推送代码到 Gitee

    cd repo
    git remote add origin git@gitee.com:username/repo.git
    git push -u origin main
    

git@gitee.com:username/repo.git 是一个SSH URL,用于通过SSH协议访问Gitee上的Git仓库。这个URL的各个部分有不同的含义:

解析 git@gitee.com:username/repo.git
  1. git@

    • 这是SSH协议中的用户名。在Gitee(以及其他类似的Git托管服务)中,用户名通常是 git。这是因为Gitee的服务器使用 git 用户来处理所有的Git请求。
  2. gitee.com

    • 这是Gitee的域名。表示你要连接的服务器地址。
  3. :

    • 这个冒号是分隔符,用于区分服务器地址和仓库路径。
  4. username

    • 这是你在Gitee上的用户名。表示你拥有的仓库所属的账户。
  5. /repo.git

    • 这是你在Gitee上创建的仓库名称。repo 是仓库的名字,.git 是Git仓库的标准后缀。
完整URL的含义
  • git@gitee.com:username/repo.git
    • 这个URL表示你通过SSH协议连接到 gitee.com 服务器,使用 git 用户名,访问 username 账户下的 repo 仓库。

总结

通过以上步骤,你可以生成并配置 SSH 密钥对,确保能够顺利连接到 Gitee。具体步骤包括:

  1. 生成 SSH 密钥对:选择合适的加密算法,使用 ssh-keygen 命令生成 Gitee 的 ED25519 密钥对,并设置一个 passphrase。同时,使用有意义的邮箱地址命名密钥,以便于管理和识别。
  2. 配置 ~/.ssh/config 文件:编辑 ~/.ssh/config 文件,指定 Gitee 主机和对应的私钥文件。
  3. 将公钥添加到 Gitee:复制公钥内容并将其添加到 Gitee 的设置中。
  4. 测试连接:使用 ssh -T 命令测试与 Gitee 的连接。
  5. 克隆或推送代码:使用 Git 命令克隆和推送代码到 Gitee。

希望这篇经验笔记对你有所帮助!

相关文章:

经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)

从生成 SSH 密钥到成功连接测试的经验笔记(以Gitee为例) 1. 生成 SSH 密钥对 选择合适的加密算法 ED25519: 密钥长度:私钥 256 位(32 字节),公钥 256 位(32 字节)&#…...

Object.defineProperty和响应式

Object.defineProperty()是一个监听对象属性变化的方法。一般情况下我们是不会直接使用的,或者说我们遇到的场景还没有这么高级。 最有名的例子就是Vue2的响应式实现,就是通过这个方法来实现的。 用起来不难,就是个API,只是用的…...

前端web

题目&#xff1a;制作带有下拉悬停菜单的导航栏 效果图 一、先制作菜单栏 <body> <div id"menu"> <div id"container"> <div class"item">游戏1 <div cla…...

DDNet 服务器配置教程 Linux 环境

DDNet 服务器配置教程 Linux 环境 配置之前可以参考一下官方网址给出的内容 官方网址&#xff1a;DDNet官方 环境说明 OS: Debian 11 安装 可以直接从官网下载&#xff0c;也可以使用这个链接: Linux_DDNet 下载链接 上文中给的链接会因为更新而出现版本落后的情况&#x…...

Vue 2 —监视器实现动态切换表单属性值

目录 一、需求背景 二、监视器语法 三、实例展示 1、HTML部分 2、JS部分 四、使用场景总结 1. 表单验证 2. 动态更新 UI 3. 数据同步 4. 计算属性的替代方案 计算属性的优势 : 简洁性&#xff1a; 监视器的优势 : 灵活性&#xff1a; 多属性依赖&#xff1a; 副…...

Qt_day10_程序打包(完结)

目录 1. 设置图标 2. Debug和Release版本 3. 动态链接库 4. 打包 5. 联系项目要求 Qt开发的程序最终都是要给用户使用的&#xff0c;用户的电脑上不可能装一个Qt的开发环境导入项目使用。因此项目项目开发完成后需要打包——制作成安装包&#xff0c;用户直接下载并安装即可使用…...

golang通用后台管理系统09(系统操作日志记录)

1.日志工具类 package log/**** 日志记录 wangwei 2024-11-18 15:30*/ import ("log""os""path/filepath""time" )// 获取以当前日期命名的日志文件路径 func getLogFilePath() string {currentDate : time.Now().Format("2006-…...

如何确保爬取的数据准确性和完整性?

在数据驱动的业务环境中&#xff0c;爬虫程序的准确性和完整性至关重要。本文将探讨如何使用Java编写爬虫程序&#xff0c;并确保其在爬取数据时的准确性和完整性。 1. 精确的HTML解析 确保数据准确性的第一步是精确地解析HTML。Jsoup是Java中常用的HTML解析库&#xff0c;它提…...

【java】JDK安装

Java Downloads | Oracle 中国 next 注意安装的路径 环境变量...

科技改变工作方式:群晖NAS安装内网穿透实现个性化办公office文档分享(1)

文章目录 前言1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 前言 本文将详细介绍如何在群晖NAS上安装Synology Office和Synology Drive Server&#xff0c;并利用Cpolar内网穿透工具为本地文档配置固定的公网…...

基于Java Springboot甘肃旅游管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…...

03-axios常用的请求方法、axios错误处理

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…...

《天体》游戏配置要求介绍

《天体》是一款太空探索和基地建造生存游戏&#xff0c;而游戏的画面表现非常不错&#xff0c;需要的配置要求也不算高&#xff0c;CPU最低只需要英特尔的酷睿i3 4XXX 系列或者AMD的Ryzen 3 2.6ghz处理器。 天体要什么配置最低配置: 需要 64 位处理器和操作系统 操作系统 *: …...

【企业级分布式系统】 Kafka集群

文章目录 KafkaKafka 概述使用消息队列的好处 Kafka 的特性Kafka 系统架构Kafka 的应用场景Kafka 的优缺点 Kafka 集群部署下载安装包安装 KafkaKafka 命令行操作Kafka 架构深入 FilebeatKafkaELK 部署指南~部署 ZookeeperKafka 集群部署 Filebeat部署 ELK&#xff08;Logstash…...

MySQL 中有哪几种锁?

在 MySQL 中&#xff0c;锁&#xff08;Locks&#xff09;是为了保证数据的一致性和完整性而设计的机制。常见的锁可以从粒度和操作类型两个角度分类。以下是详细介绍&#xff1a; 按 粒度 分类 1. 全局锁 描述&#xff1a;锁定整个数据库实例。用途&#xff1a;主要用于备份…...

kafka中节点如何服役和退役

节点服役&#xff08;添加新节点&#xff09; 1.准备新节点&#xff1a; 安装 Kafka 和相关依赖。 配置 Kafka Broker 的 server.properties 文件&#xff0c;确保 broker.id 是唯一的&#xff0c;并且配置正确的 zookeeper.connect 地址。 重启网卡 2.启动新节点&#xff…...

HTML5实现剪刀石头布小游戏(附源码)

文章目录 1.设计来源1.1 主界面1.2 皮肤风格1.2 游戏中界面 2.效果和源码源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/143798520 HTM…...

集群聊天服务器(3)muduo网络库

目录 基于muduo的客户端服务器编程 muduo只能装在linux中&#xff0c;依赖boost库 客户端并不需要高并发 基于muduo的客户端服务器编程 支持epoll线程池&#xff0c;muduo封装了线程池 而且还有完善的日志系统 使用muduo库代码非常固定&#xff0c;基本就只有chatserver的类名…...

解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题

解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题 要解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题&#xff0c;特别是当使用IBus作为输入法框架时&#xff0c;我们需要通过设置适当的环境变量来确保PyCharm可以正确调用IBus输入法。下面将详细说明原因及解决步骤…...

【jvm】HotSpot中方法区的演进

目录 1. 说明2. JDK1.6及以前3. JDK1.74. JDK1.8及以后 1. 说明 1.在HotSpot虚拟机中&#xff0c;方法区&#xff08;Method Area&#xff09;的演进是一个重要的内存管理优化过程。2.从JDK1.6到JDK1.8&#xff0c;HotSpot虚拟机中的方法区经历了从永久代到元空间的重大变化。…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...