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

git、gitee、github关系梳理及ssh不对称加密大白话解释

温馨提示:本文不会讲解如何下载、安装git,也不会讲解如何注册、使用gitee或GitHub,这些内容网上一大把,B站上的入门课程也很多,自己看看就好了。

本文仅对 git、gitee、github的关系梳理及ssh公钥私钥授权原理用白话讲解清楚。

1、git、Gitee、GitHub之间是什么关系?

  • git是个工具,是个软件,官网直接就可以下载。你就算没有gitee账户或github账户,也可以使用,只不过是在本地使用而已。主要作这个用:版本管理,说白点就好比游戏存档,通过git你可以随时取出去前面的存档,在代码上说就是可以恢复到存档了的前面的源码。git会在我们源程序目录下建一个“.git”的文件夹(隐藏的),我们通常称做**“本地仓库”**。
  • Gitee(国内的)和Github(国外的)是网络仓库,说直白的就是网盘网页版,主要用来服务程序猿管理源码的网盘(其实你就是在里面存歌曲也是可以的),直接在网页上就可以上传文件到网络仓库中,就如上传文件到网盘一样。
  • 两者关系就好比:git 类似这些gitee、GitHub网站的客户端,通过一些设置、命令,git这个工具j就可以和网络上的gitee或github仓库通过授权连通,然后通过在git中输各种命令管理网上仓库的文件。

2、git 为什么要设username, 又要添加remote,又要ssh公钥私钥?

虽然一般用git主要目的是将本地源码备份到网络仓库上,然后其他同事或者你在其他电脑上可以拉取到源码继续工作,比如下班可以在家拉取单位写的源码,但是其实git只用在本地也没问题,只是一般不会这么干。比如下面几个命令就是完全操作本地仓库:

git init   # 初始化
git add .   # 添加新变更到缓存
git commit -m ‘first commit’   # 提交新变更

为什么要设username?

这里先说这个问题,当你提交commit的时候,系统是会提示你要设置用户名和邮箱(如果你之前没有设置的话),这里的用户名和用户邮箱对应的其实就是告诉Git当前源码是谁谁提交的(当然一般谁写谁提交啦), 所以这里的用户名和密码就如好比当年你设置QQ昵称,是个认人的标志而已,所以好多教程都会提及说设置好用户名,邮箱随便写就好。

git config –global user.name “用户名”   # 设置用户名
git config –global user.email “用户邮箱”   #设置邮箱

为什么要添加remote?

下面,我们如果要把源代码传到网络仓库上去,就要用和网络仓库相关的命令了(比如:git push -u origin master # 同步远程仓库),但是,问题又来了,gitee或Github上那么多仓库,Git这个软件得知道你要传到哪个网络仓库?所以要用下面的命令告诉它(告诉它一次就好,下次就不用再说了,除非你换了仓库),然后再用push推送命令即可:

# 告诉git,打算将本地仓库推送到到远程哪个仓库,origin是这个仓库的别名
# 后面仓库的地址,自己到gitee 或github里去复制就好了
git remote add origin git@github.com:帐号名/仓库名.git
git push -u origin master   # 同步远程仓库  

为什么要用SSH公钥私钥?

但是,又是但是,你可能发现又会报错,因为你的仓库虽然开源,谁都可以下载,但显然不愿意谁都可以胡乱上传到你的网络仓库上吧?没有gitee或GitHub网站的你自己注册的账号和密码,Git啥也传不上去。两个办法:1、告诉git账号和密码(上传前弹出输入框等你输入),显然每次这样太麻烦。2、用SSH公钥模式,(一般的地球人都用这个模式)。

3、ssh公钥私钥到底是什么?怎么弄?怎么用?

- 先说什么是ssh公钥?参考下图边看说明:

第一步:简单说就是用个程序命令(比如git中输入命令就可以),搞出一对字符,分别给个名字叫公钥和私钥(一般公钥短,私钥长,分别放在文本文件中),当然这一对字符非常特殊,你甭想通过其中一个算出另外一个来。
第二步+第三步:好了,现在将私钥务必自己存好,把公钥上传到gitee网站或其他需要的网站,其实就是你自己先登陆网站,然后网站有专门的页面,让你把公钥内容填上去,你点击确定或提交后,网站就把你的公钥存到他们服务器上。
第四步:当下次你想通过某软件方式而非手工打开网页登陆网站时(比如用git来登陆获取gitee网站授权传输东西),就把私钥给网站(怎么给,继续看下面内容),网站会把前面你给的公钥和你的私钥匹配,如果是一对就直接让你登陆,账号和密码都不需要了。
在这里插入图片描述
在这里插入图片描述

- 怎么弄到公钥私钥?怎么用?

建议直接看 gitee网站上的介绍,直接在git中输入命令就可以了,已经很简明清晰了。
链接 https://gitee.com/help/articles/4181

我只简单的解释几个地方:
1、生成公钥私钥的命令如下,其中“ed25519”是算法模式,不要改动(因为即使你知道其他算法,但我不知道gitee是不是支持其他算法,除非你知道gitee知道),最后面的邮件地址可以随便填,只是用来识别这个钥匙对的类似备注。

# 生成 sshkey:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  
# Generating public/private ed25519 key pair...

2、命令成功的话,会在下面的目录中生成公钥和私钥文件(文本文件),如果要在另一台机器上使用这对公钥和私钥,必须将.ssh目前全部复制过去而不是只复制私钥,因为大多数网站为了安全会同时检查。公钥用文本打开直接复制后就可以提供给网站了。
在这里插入图片描述

2、注意下面的命令行,是首次使用需要确认并添加主机到本机SSH可信列表。如果你把公钥私钥给了另一台机器使用,那另一台机器也要输入这个命令来添加可信任。

#终端(Terminal)中输入
ssh -T git@gitee.com

相关文章:

git、gitee、github关系梳理及ssh不对称加密大白话解释

温馨提示:本文不会讲解如何下载、安装git,也不会讲解如何注册、使用gitee或GitHub,这些内容网上一大把,B站上的入门课程也很多,自己看看就好了。 本文仅对 git、gitee、github的关系梳理及ssh公钥私钥授权原理用白话讲…...

UDP协议详解

目录 前言: 再谈协议 UDP协议 比较知名的校验和 小结: 前言: UDP和TCP作为传输层非常知名的两个协议,那么将数据从应用层到传输层数据是怎样进行打包的?具体都会增加一些什么样的报头,下面内容详细介绍…...

Myb atis基础3

Mybatis注解开发单表操作Mybatis的常用注解Mybatis的增删改查MyBatis注解开发的多表操作MyBatis的注解实现复杂映射开发一对一查询一对多查询多对多查询构建sqlsql构建对象介绍查询功能的实现新增功能的实现修改功能的实现删除功能的实现Mybatis注解开发单表操作 Mybatis的常用…...

VHDL语言基础-时序逻辑电路-寄存器

目录 寄存器的设计: 多位寄存器: 多位寄存器的VHDL描述: 移位寄存器: 串进并出的移位寄存器的VHDL描述: 寄存器的设计: 多位寄存器: 一个D触发器就是一位寄存器,如果需要多位寄存器&…...

高通开发系列 - linux kernel更新msm-3.18升至msm-4.9

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 linux kernel更新msm-3.18升至msm-4.9第一周处理的内容:第二周处理的内容第三周处理的内容linux kernel更新msm-3.18升至msm-4.9 第…...

【Tensorflow2.0】tensorflow中的Dense函数解析

目录1 作用2 例子3 与torch.nn.Linear的区别4 参考文献1 作用 注意此处Tensorflow版本是2.0。 由于本人是Pytorch用户,对Tensorflow不是很熟悉,在读到用tf写的代码时就很是麻烦。如图所示,遇到了如下代码: h Dense(unitsadj_di…...

PyTorch学习笔记:data.RandomSampler——数据随机采样

PyTorch学习笔记:data.RandomSampler——数据随机采样 torch.utils.data.RandomSampler(data_source, replacementFalse, num_samplesNone, generatorNone)功能:随即对样本进行采样 输入: data_source:被采样的数据集合replace…...

设计模式(七)----创建型模式之建造者模式

1、概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解…...

DCGAN

DCGAN的论文地址[https://arxiv.org/pdf/1511.06434.pdf]。DCGAN是GAN的一个变体,DCGAN就是将CNN和原始的GAN结合到一起,生成网络和鉴别网络都运用到了深度卷积神经网络。DCGAN提高了基础GAN的稳定性和生成结果质量。DCGAN主要是在网络架构上改进了原始的…...

【速通版】吴恩达机器学习笔记Part3

目录 1.多元线性回归 a.特征缩放 可行的缩放方式: 1.除以最大值: 2.mean normalization: 3.Z-score normalization b.learning curve: c.learning rate: 2.多项式回归 3.classification logistics regression 1.多元线性回归 其意义很…...

【leetcode】跳跃游戏

一、题目描述 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums [2,3,1,1,4] 输出:true 解释&#x…...

论文投稿指南——中文核心期刊推荐(冶金工业 2)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…...

【GPLT 二阶题目集】L2-044 大众情人

人与人之间总有一点距离感。我们假定两个人之间的亲密程度跟他们之间的距离感成反比,并且距离感是单向的。例如小蓝对小红患了单相思,从小蓝的眼中看去,他和小红之间的距离为 1,只差一层窗户纸;但在小红的眼里&#xf…...

SpringBoot整合(二)MyBatisPlus技术详解

MyBatisPlus详解 一、标准数据层开发 MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 MyBatisPlus的官网为:https://mp.baomidou.com/ 1.1 标准CRUD 1.2 新增 int insert (T t)T:泛型&#xff0c…...

导入importk8s集群,添加node节点,rancher agent,Rancher Agent设置选项

curl方式: Rancher在每个节点上部署代理以与节点通信。 此页面描述了可以传递给代理的选项,要使用这些选项,您需要采用创建自定义集群 ,并在docker run添加节点时将选项添加到生成的命令中。 常规选项 参数环境变量描述—serve…...

C++11--右值引用与移动语义

目录 基本概念 左值与右值 左值引用与右值引用 右值引用的使用场景和意义 左值引用的使用场景 右值引用和移动语义 移动构造和拷贝构造的区别 编译器的优化 移动赋值和赋值运算符重载的区别 右值引用的其他应用场景 完美转发 万能引用 完美转发保持值属性 完美转…...

Python SQLAlchemy入门教程

本文将以Mysql举例,介绍sqlalchemy的基本用法。其中,Python版本为2.7,sqlalchemy版本为1.1.6。 一. 介绍 SQLAlchemy是Python中最有名的ORM工具。 关于ORM: 全称Object Relational Mapping(对象关系映射&#xff0…...

你是真的“C”——操作符详解【下篇】+整形提升+算术转换

你是真的“C”——操作符详解下篇😎前言🙌操作符详解【上篇】内容:操作符详解【下篇】内容:1、 条件操作符2、逗号表达式:3、下标引用、函数调用和结构成员3、访问一个结构的成员表达式求值1、隐式类型转换&#xff1a…...

文本匹配SimCSE模型代码详解以及训练自己的中文数据集

前言 在上一篇博客文本匹配中的示例代码中使用到了一个SimCSE模型,用来提取短文本的特征,然后计算特征相似度,最终达到文本匹配的目的。但是该示例代码中的短文本是用的英文短句,其实SimCSE模型也可以用于中文短文本的特征提取&a…...

Biotin-PEG-FITC 生物素聚乙二醇荧光素;FITC-PEG-Biotin 科研用生物试剂

结构式: ​Biotin-PEG-FITC 生物素聚乙二醇荧光素 英文名称:Biotin-PEG-Fluorescein 中文名称:生物素聚乙二醇荧光素 外观:黄色液体、半固体或固体,取决于分子量。 溶剂:溶于大部分有机溶剂,…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

day36-多路IO复用

一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...