经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)
从生成 SSH 密钥到成功连接测试的经验笔记(以Gitee为例)
1. 生成 SSH 密钥对
-
选择合适的加密算法
-
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
-
-
生成 Gitee 的 ED25519 密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_gitee
在生成密钥对时,系统会提示你输入一个 passphrase。请务必记住这个 passphrase,它用于保护你的私钥。
-
邮箱命名最佳实践
-
包含用户名和设备信息:将用户名和设备信息包含在邮箱地址中,可以清楚地知道这把密钥是哪个用户在哪个设备上生成的。例如:
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"
-
-
查看生成的密钥文件:
ls ~/.ssh
你应该看到以下文件:
id_ed25519_gitee
id_ed25519_gitee.pub
2. 配置 ~/.ssh/config
文件
- 编辑
~/.ssh/config
文件:# Gitee Host gitee.comHostName gitee.comUser gitIdentityFile ~/.ssh/id_ed25519_gitee
3. 将公钥添加到 Gitee
-
复制公钥内容:
cat ~/.ssh/id_ed25519_gitee.pub
-
登录 Gitee 账户:
- 进入 Gitee 的设置页面。
- 找到“SSH 公钥”或“部署密钥”部分。
- 粘贴你复制的公钥内容,并保存。
4. 测试连接
-
测试与 Gitee 的连接:
ssh -T git@gitee.com
-
首次连接提示:如果这是你第一次连接到该服务器,系统会显示一条消息,询问你是否要继续连接。这条消息通常看起来像这样:
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) -
确认并保存主机信息:输入
yes
并按回车键。这一步骤会让 SSH 客户端将服务器的公钥添加到你的~/.ssh/known_hosts
文件中。这意味着下次你再连接时,SSH 客户端可以验证服务器的身份,从而提高安全性。 -
验证成功的信息:如果一切正常,你应该会看到类似如下所示的消息:
Hi username! You've successfully authenticated, but Gitee does not provide shell access.
-
错误处理:如果你遇到任何错误,比如认证失败或无法建立连接,请检查你的 SSH 密钥是否已正确添加到 Gitee 账户中,或者是否有网络问题阻止了你连接到 Gitee。
5. 克隆或推送代码
-
克隆 Gitee 仓库:
git clone git@gitee.com:username/repo.git
-
推送代码到 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
-
git@
:- 这是SSH协议中的用户名。在Gitee(以及其他类似的Git托管服务)中,用户名通常是
git
。这是因为Gitee的服务器使用git
用户来处理所有的Git请求。
- 这是SSH协议中的用户名。在Gitee(以及其他类似的Git托管服务)中,用户名通常是
-
gitee.com
:- 这是Gitee的域名。表示你要连接的服务器地址。
-
:
:- 这个冒号是分隔符,用于区分服务器地址和仓库路径。
-
username
:- 这是你在Gitee上的用户名。表示你拥有的仓库所属的账户。
-
/repo.git
:- 这是你在Gitee上创建的仓库名称。
repo
是仓库的名字,.git
是Git仓库的标准后缀。
- 这是你在Gitee上创建的仓库名称。
完整URL的含义
git@gitee.com:username/repo.git
:- 这个URL表示你通过SSH协议连接到
gitee.com
服务器,使用git
用户名,访问username
账户下的repo
仓库。
- 这个URL表示你通过SSH协议连接到
总结
通过以上步骤,你可以生成并配置 SSH 密钥对,确保能够顺利连接到 Gitee。具体步骤包括:
- 生成 SSH 密钥对:选择合适的加密算法,使用
ssh-keygen
命令生成 Gitee 的 ED25519 密钥对,并设置一个 passphrase。同时,使用有意义的邮箱地址命名密钥,以便于管理和识别。 - 配置
~/.ssh/config
文件:编辑~/.ssh/config
文件,指定 Gitee 主机和对应的私钥文件。 - 将公钥添加到 Gitee:复制公钥内容并将其添加到 Gitee 的设置中。
- 测试连接:使用
ssh -T
命令测试与 Gitee 的连接。 - 克隆或推送代码:使用 Git 命令克隆和推送代码到 Gitee。
希望这篇经验笔记对你有所帮助!
相关文章:
经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)
从生成 SSH 密钥到成功连接测试的经验笔记(以Gitee为例) 1. 生成 SSH 密钥对 选择合适的加密算法 ED25519: 密钥长度:私钥 256 位(32 字节),公钥 256 位(32 字节)&#…...
Object.defineProperty和响应式
Object.defineProperty()是一个监听对象属性变化的方法。一般情况下我们是不会直接使用的,或者说我们遇到的场景还没有这么高级。 最有名的例子就是Vue2的响应式实现,就是通过这个方法来实现的。 用起来不难,就是个API,只是用的…...
前端web
题目:制作带有下拉悬停菜单的导航栏 效果图 一、先制作菜单栏 <body> <div id"menu"> <div id"container"> <div class"item">游戏1 <div cla…...
DDNet 服务器配置教程 Linux 环境
DDNet 服务器配置教程 Linux 环境 配置之前可以参考一下官方网址给出的内容 官方网址:DDNet官方 环境说明 OS: Debian 11 安装 可以直接从官网下载,也可以使用这个链接: Linux_DDNet 下载链接 上文中给的链接会因为更新而出现版本落后的情况&#x…...
Vue 2 —监视器实现动态切换表单属性值
目录 一、需求背景 二、监视器语法 三、实例展示 1、HTML部分 2、JS部分 四、使用场景总结 1. 表单验证 2. 动态更新 UI 3. 数据同步 4. 计算属性的替代方案 计算属性的优势 : 简洁性: 监视器的优势 : 灵活性: 多属性依赖: 副…...
Qt_day10_程序打包(完结)
目录 1. 设置图标 2. Debug和Release版本 3. 动态链接库 4. 打包 5. 联系项目要求 Qt开发的程序最终都是要给用户使用的,用户的电脑上不可能装一个Qt的开发环境导入项目使用。因此项目项目开发完成后需要打包——制作成安装包,用户直接下载并安装即可使用…...
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-…...
如何确保爬取的数据准确性和完整性?
在数据驱动的业务环境中,爬虫程序的准确性和完整性至关重要。本文将探讨如何使用Java编写爬虫程序,并确保其在爬取数据时的准确性和完整性。 1. 精确的HTML解析 确保数据准确性的第一步是精确地解析HTML。Jsoup是Java中常用的HTML解析库,它提…...
【java】JDK安装
Java Downloads | Oracle 中国 next 注意安装的路径 环境变量...
科技改变工作方式:群晖NAS安装内网穿透实现个性化办公office文档分享(1)
文章目录 前言1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 前言 本文将详细介绍如何在群晖NAS上安装Synology Office和Synology Drive Server,并利用Cpolar内网穿透工具为本地文档配置固定的公网…...
基于Java Springboot甘肃旅游管理系统
一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…...
03-axios常用的请求方法、axios错误处理
欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...
《天体》游戏配置要求介绍
《天体》是一款太空探索和基地建造生存游戏,而游戏的画面表现非常不错,需要的配置要求也不算高,CPU最低只需要英特尔的酷睿i3 4XXX 系列或者AMD的Ryzen 3 2.6ghz处理器。 天体要什么配置最低配置: 需要 64 位处理器和操作系统 操作系统 *: …...
【企业级分布式系统】 Kafka集群
文章目录 KafkaKafka 概述使用消息队列的好处 Kafka 的特性Kafka 系统架构Kafka 的应用场景Kafka 的优缺点 Kafka 集群部署下载安装包安装 KafkaKafka 命令行操作Kafka 架构深入 FilebeatKafkaELK 部署指南~部署 ZookeeperKafka 集群部署 Filebeat部署 ELK(Logstash…...
MySQL 中有哪几种锁?
在 MySQL 中,锁(Locks)是为了保证数据的一致性和完整性而设计的机制。常见的锁可以从粒度和操作类型两个角度分类。以下是详细介绍: 按 粒度 分类 1. 全局锁 描述:锁定整个数据库实例。用途:主要用于备份…...
kafka中节点如何服役和退役
节点服役(添加新节点) 1.准备新节点: 安装 Kafka 和相关依赖。 配置 Kafka Broker 的 server.properties 文件,确保 broker.id 是唯一的,并且配置正确的 zookeeper.connect 地址。 重启网卡 2.启动新节点ÿ…...
HTML5实现剪刀石头布小游戏(附源码)
文章目录 1.设计来源1.1 主界面1.2 皮肤风格1.2 游戏中界面 2.效果和源码源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/143798520 HTM…...
集群聊天服务器(3)muduo网络库
目录 基于muduo的客户端服务器编程 muduo只能装在linux中,依赖boost库 客户端并不需要高并发 基于muduo的客户端服务器编程 支持epoll线程池,muduo封装了线程池 而且还有完善的日志系统 使用muduo库代码非常固定,基本就只有chatserver的类名…...
解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题
解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题 要解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题,特别是当使用IBus作为输入法框架时,我们需要通过设置适当的环境变量来确保PyCharm可以正确调用IBus输入法。下面将详细说明原因及解决步骤…...
【jvm】HotSpot中方法区的演进
目录 1. 说明2. JDK1.6及以前3. JDK1.74. JDK1.8及以后 1. 说明 1.在HotSpot虚拟机中,方法区(Method Area)的演进是一个重要的内存管理优化过程。2.从JDK1.6到JDK1.8,HotSpot虚拟机中的方法区经历了从永久代到元空间的重大变化。…...
Win10/11 安装使用 Neo4j Community Edition
如果你下载的是 Neo4j Community Edition 的压缩包,意味着你需要手动解压并配置 Neo4j。以下是详细的使用步骤: 0. 下载压缩包 访问Neo4j官网,找到 Community Edition 版本并选择 4.x 或者 5.x 下载:https://neo4j.com/deployme…...
Ubuntu 22.04 上快速搭建 Samba 文件共享服务器
Samba 简介 Samba 是一个开源软件,它扮演着不同操作系统间沟通的桥梁。通过实现 SMB(Server Message Block)协议,Samba 让文件和打印服务在 Windows、Linux 和 macOS 之间自由流动。 以下是 Samba 的特点: 跨平台兼…...
JQuery 基础知识学习(详尽版)2024.11.17
一、jQuery简介及使用详解 1.1 jQuery简介 写更少的代码,做更多的事;jQuery可以做:HTML 元素选取 , HTML 元素操作 ,CSS 操作 ,HTML 事件函数 ,JavaScript 特效和动画 ,HTML DOM 遍…...
Spring Validation参数校验
Validation Validation是Spring提供的一个参数校验框架,使用预定义的注解完成参数校验 使用步骤 引入Spring Validation起步依赖在需要校验的参数所在的类上添加Validated注解在需要校验的参数前面加上Pattern注解 <!--参数校验依赖--><dependency>&l…...
高斯数据库Postgresql死锁和锁表解决方法
解决死锁进方法: 查询死锁进程列表 select * from pg_stat_activity where waiting‘t’ 发现有好几条挂起的记录,记录下所有或需要解锁的pid 解决死锁进程 select pg_cancel_backend(‘pid值’) 解决完后,刷新后测试,恢复正…...
【设计模式】模板方法模式 在java中的应用
设计模式: 设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由Erich Gamma等人在1995年的书《设计模式:可复用面向对象软件的基础》中首次引入的。设计模式可以加快开发过程&#x…...
PVE纵览-安装系统卡“Loading Driver”的快速解决方案
PVE纵览-安装系统卡“Loading Driver”的快速解决方案 文章目录 PVE纵览-安装系统卡“Loading Driver”的快速解决方案摘要通过引导参数解决PVE安装卡在“Loading Driver”问题官方解决方法 关键字: PVE、 显卡、 Loading、 Driver、 nomodeset 摘要 在虚拟机…...
Lua资料
Lua脚本语言 cheet sheet Lua & c Lua与C API交互全面解析 Lua语言:和C语言的交互 Lua进阶用法之Lua和C的接口设计 Lua C API 简介 C和Lua之间的相互调用 深入Lua:用户数据userdata 基本数据类型 之 UserData calling-lua-from-c/ Embedding Lua i…...
【C语言】值传递和地址传递
值传递 引用传递(传地址,传引用)的区别 传值,是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值。 传地址,是传值的一种特殊方式,只是他传递的是地址,不是普通…...
PyTorch 中使用自动求导计算梯度
使用 PyTorch 进行自动求导和梯度计算 在 PyTorch 中,张量的 requires_grad 属性决定了是否需要计算该张量的梯度。设置为 True 的张量会在计算过程中记录操作,以便在调用 .backward() 方法时自动计算梯度。通过构建计算图,PyTorch 能够有效…...
郴州做网站公司/域名网
在看python高级编程这本书的时候,在讲到super的时候,产生了一些疑惑,super在python中的用法跟其他的语言有一些不一样的地方,在网上找了一些资料,发现基本上很少有文章能把我的疑惑讲明白,其中这篇文章最有…...
深圳企业100强/seo整站优化
php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能.所以使用mail函数往往…...
wejianzhan是什么网站/如何学会推广和营销
MySQL架构 连接器连接池,安全认证、线程池、连接限制、检查内存、缓存SQL接口 DML、DDLSQL解析器,对SQL语句的权限检查、解析为二进制程序优化器,优化访问路径缓存cache,buffer存储引擎 innodb文件系统日志存储过程 存储过程把经常使用的SQL语…...
外国做美食视频网站/三叶草gw9356
对象数组 数组可以将对象应用作为元素保存。仅仅使用数组和其它类型的对象就可以建立相当复杂度的信息管理结构。例如,一个数组可以包含有多个对象,每个对象又由一组变量和使用这些变量的方法组成,而对象中的变量可能本身又是数组。 当用数组…...
广东网约车涨价/淘宝seo培训
鸿蒙版瑞幸咖啡开发日记之登录功能开发1.逻辑分析2.页面设计开发3.登录逻辑开发3.1 准备工作3.2 封装用户数据处理方法3.3 Bug记录3.4 登录页的开发3.5 MainSlice的逻辑说明首先说明一下,我这里只做了手机号登录,没做微信登录 其实本来打算使用华为账号进…...
wordpress评论添加emoji表情/网上营销推广
1.首先确认需要绑定的IP地址以及mac地址2.如果是多个网卡的首先要确认绑定到那个网卡上执行以下命令,可以查看到网卡名称netsh I I show in 或者netsh interface IPV4 show interface获得类似如下信息:名称列找到需要绑定的接口3.绑定ARP,如果…...