首页 > 其他分享 >git教程之签个名吧

git教程之签个名吧

时间:2023-06-25 16:23:35浏览次数:39  
标签:教程 git 公开 数字签名 密匙 gpg 签个

最近我成功用上gpg签名了,顺手写个教程
image
啊等等,上次git教程写的啥来着
image
才写到入门??而且是我整个公众号创立以来的第四篇文章?后面就再也没写过git??

没有关系啊,好像把git的基础操作都简单讲了一遍,无伤大雅啊,下期再慢慢细说git的其他操作

好了进入正题

git教程之签个名

gpg是啥

首先先讲一下数字证书技术。

大概就是为了验证信息是谁发出的,以防止第三方假冒或事后否认(如发送方发送信息后恶意说信息不是他发的,或接收方恶意捏造信息说是发送方发送的)

首先是数字签名。在发送方发送信息前,发送方需要准备两个密匙,也就是公开密匙和私有密匙。在发送信息后,使用私有密匙对其加密,得到的密文就是数字签名。发送方需要把数字签名、信息和公开密匙共同发给接收方,接收方收到数字签名后,可以使用公开密匙进行解密,与原数据比对。若两者相同,说明数据未受篡改。而接收方也无法捏造信息,因为公开密匙无法生成数字签名,只有私有密匙可以。

而这无法防止假冒或事后否认,因为公开密匙不会说自己是谁发送的。因此,需要一个第三方的认证机构(Certification Authority,简称CA),对信息进行验证,而由CA认证并生成的数字签名,就叫做数字证书。
image
大体就是这么个流程,反正知道这么个东西就行了,考试不考

而gpg,就是我们用的CA

下载gpg

一般git都会带gpg客户端,还是老规矩,用--version检验是否安装gpg
gpg --version
image
如果这样就是已经安装了

如果没有安装gpg客户端,看我以前的教程装git啊,那按照下面的教程安装

linux debian系(debian、ubuntu、deepin等)

sudo apt-get install gnupg

linux Fedora系(Fedora、Red Hat、CentOS等)

sudo yum install gnupg

windows

你说说你当程序员用什么Windows?g++也装不了得用MinGW,git也装不了还得用人家做的git for windows。gpg只能去找git for windows内置的了。自己去看我之前做的git安装教程
image
啊?那个傻子用360下软件啊???
哦是我啊,那没事了

重新讲讲吧,嫌国外官网慢的话可以用魔法,也可以用镜像站

顺带一提,cmder是自带git for windows的,装了cmder的不用再装git for windows了

MacOS

brew install macos

生成私有密匙和公开密匙

gpg --gen-key
然后问你的全部默认即可
image
接下来,我们要在git中使用gpg,那么输入的Real name和email应该和remote上的一致。如使用gitee,Real name就应为gitee的用户名,email应为主邮箱。这样信息接收方gitee才可以认出你。Comment是注释,随便写写即可
image
完成后回车
image
这里需要核实一下信息,Real name和Email是否填写正确,若填写错误,输入N可改变Real name,输入E可改变Email,输入C可改变Comment。若核实无误,输入O(注意是大写字母O,不是数字0)即可

把公开密匙发送给接收方

随后,我们可以使用下面的指令来查看我们之前生成的密匙
gpg -K
image
sec后面那串打码打掉的十六进制数字,每个人都不同,看自己的即可。随后我们使用这串数字来导出公开密匙
gpg --armor --export 那串数字
image
它输出的,就是我们的公开密匙。我们要把这个公开密匙发给信息接收方,也就是remote。我们还是以gitee为例
image
注意:粘贴密匙时,一定要注意自己粘贴的是公开密匙而非私有密匙,公开密匙会以-----BEGIN PGP PUBLIC KEY BLOCK-----开头,以-----END PGP PUBLIC KEY BLOCK-----结尾。在黏贴是,开头和结尾的这两串字符也要黏贴。

在git中使用gpg签名

git config --global user.signingkey 十六进制数字
这里是十六进制数字就是之前导出公开密匙用的那串

随后,在提交时,加上-S参数,即可给提交签名啦
git commit -m "xxx" -S
签过名的提交,在gitee里,会在旁边显示一个绿色的“已验证”,就像文章开头的那张图一样
image

OK本期文章到此结束,下期的话

标签:教程,git,公开,数字签名,密匙,gpg,签个
From: https://www.cnblogs.com/eason66-blog/p/git_gpg.html

相关文章

  • 博客园美化教程大集合
    个人博客转移至:https://sunhwee.com,第一时间会先发在前者,有时间再更新至博客园。阅读目录:1. 前言2.定制自己的博客00.美化整体效果01.准备工作02.自定义个性化导航栏03.添加顶部博主信息04.添加顶部滚动公告05.为博客文章添加目录导航06.添加分......
  • git配置和上传方法
    1.配置用户名和邮箱:gitconfig--globaluser.name"your_name"gitconfig--globaluser.email"your_email"2.生成SSHkeyssh-keygen-trsa-C"your_email"接下来会有三次输入,都敲回车置为空。3.查看自己的公钥cat~/.ssh/id_rsa.pub从ssh-rsa开头,全部复制......
  • github.com 打不开的准确方法
    解决方法:打开网站http://tool.chinaz.com/dns/,在A类型中填写github.com,再点击监测按钮复制下面任意一个ip打开电脑文件C:\Windows\System32\drivers\etc下的host文件在host文件的最后一刚加入刚才复制的IP20.205.243.166    github.com5.win+R打开cmd命窗口,执行......
  • WPF入门教程系列二十九 ——DataGrid使用示例MVVM模式(7)
    WPF入门教程系列目录WPF入门教程系列二——Application介绍WPF入门教程系列三——Application介绍(续)WPF入门教程系列四——Dispatcher介绍WPF入门教程系列五——Window介绍WPF入门教程系列十一——依赖属性(一)WPF入门教程系列十五——WPF中的数据绑定(一) 接上文WPF......
  • CouchDB教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介CouchDB是一个开源的面向文档的数据库管理系统,可以通过RESTfulJavaScriptObjectNotation(JSON)API访问。术语“Couch”是“ClusterOfUnreliableCommodityHardware”的首字母缩写,它反映了CouchDB的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运......
  • 课程介绍:YOLOv8实战火焰和烟雾检测 (视频教程)
    课程链接:https://edu.51cto.com/course/34090.htmlYOLOv8基于先前YOLO版本在目标检测任务上的成功,进一步提升性能和灵活性。本课程将手把手地教大家使用YOLOv8结合可变形卷积(deformableconvolution)训练火焰和烟雾数据集,完成一个多目标检测实战项目,可实时检测图像、视频、摄像......
  • 常用Git命令
    个人常用git命令更新本地不存咋修改直接pullgitpullorigin如果是分支则是gitpullorigin分支名字本地存在修改情况1:修改代码不重要直接还原后在更新情况2:修改代码很重要办法1此时可以本地提交,然后更新gitadd.gitcommit-m"说明情况"gitpullorigin但是......
  • RocketMQ安装教程
    RocketMQ是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。它是阿里巴巴双十一购物狂欢节和众多大规模互联网业务场景的必备基础设施。在同一年,阿里巴巴正式开源了RocketMQ的第一个版本。20......
  • 宝塔面板实用教程(1):10分钟部署在线客服系统
    客服系统发布以来,一直有朋友询问如何在宝塔面板中安装部署,开始我一直认为参考Linux版的安装教程就可以了,一直没有专门写宝塔环境的教程。这段时间来咨询的朋友越来越多,经过了解,我才知道宝塔面板的普及率有多高,好吧,那我就认真对待一下这个问题,详细编写了基于宝塔安装部署升讯威在......
  • Could not resolve type alias 'com.github.mybatis.helper.page.PageSqlInterceptor'
    报错信息 Couldnotresolvetypealias'com.github.mybatis.helper.page.PageSqlInterceptor'.Cause:java.lang.ClassNotFoundException:Cannotfindclass:com.github.mybatis.helper.page.PageSqlInterceptor 原因报错的位置是 mybatis-config.xml 文件中......