首页 > 其他分享 >Git的GPG签名 —— Tag签名 Verified验证,防伪造的gitee/github commit验证

Git的GPG签名 —— Tag签名 Verified验证,防伪造的gitee/github commit验证

时间:2024-01-02 14:11:08浏览次数:43  
标签:Git git 验证 GPG tag 公钥 签名 commit ssh

相关资料:
如何使用git通过ssh协议拉取gitee上的项目代码——如何正确的免密使用git




不论是gitee还是GitHub都有两种公钥设置,一种是ssh公钥,另一种则是GPG公钥。ssh公钥是为了在进行git pull和git push操作时进行免密验证的;而GPG公钥是在git tag和git commit时进行验证的。不过需要注意的是,如果不进行ssh公钥设置,那么在进行git pull和git push时都是需要在每次操作的时候进行用户名和密码认证的,因此进行ssh公钥验证会使git的操作简化,但是GPG公钥如果不进行设置时不会有任何影响的,不会对git的tag和commit操作有任何影响,完全可以在无验证的情况下进行git tag和git commit操作,但是,如果你一旦对git的tag和commit进行了GPG的公钥设置,那么就需要在每次进行git tag和git commit操作的时候手动进行GPG验证的参数声明,否则git的tag和commit操作是无法合并到远端的。


可以说,设置git的ssh公钥会简化git pull和git push的密码验证,但是设置git的GPG公钥则会增加git的操作步骤。


git的ssh公钥是为了确认你有访问并修改git远端仓库的资格,但是git的远端代码库往往是多人合作的,也就是说同时可以有多个人对git的远端仓库进行代码的提交和修改,这个时候这几个合作者之间的身份是无法确认的,比如一个项目有A、B、C三个人合作,这三个人均有可以访问代码库的ssh公钥,但是对于每一次的git的tag和commit操作是无法确认到底是A、B、C三个人中到底是哪一个操作的(用户名和邮箱并不是信息不变的,无法作为身份的唯一验证的),而这个时候项目的总负责人就可以通过设置GPG公钥来实现对每一次的tag和commit进行身份验证,这样合并到远端代码库中的所有操作都可以定位到具体人,这样即使有人恶意添加后门代码或者是删库我们也是可以直接定位到具体的操作者的。这也是git的GPG公钥设置的意义,如果是个人维护的项目就没有必要进行GPG公钥的设置了,否则就是为自己的操作增加工作罢了,但是对于多人合作的项目还是很有必要添加GPG公钥认证的。


给出Gitee的ssh公钥和GPG公钥设置页面:

image




标签:Git,git,验证,GPG,tag,公钥,签名,commit,ssh
From: https://www.cnblogs.com/devilmaycry812839668/p/17940364

相关文章

  • 无涯教程-Java 正则 - \p{XDigit}匹配函数
    字符类\p{XDigit}匹配任何十六进制字符。p{XDigit}-示例下面的示例显示Posix字符类匹配的用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassPosixCharacterClassDemo{privatestaticfinalStringREGEX......
  • 代码随想录算法训练营第二十天|654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,9
    一、654.最大二叉树题目链接:LeetCode654.最大二叉树学习:思路:前序遍历方法参数:(int[]nums,intstart,intend)返回类型:TreeNode终止条件:if(end-start==0)returnnull;if(end-start==1)returnnewTreeNode(nums[start]);单层递归逻辑:寻找数组中的最大......
  • ​​git clone​ 与 git 安装
    gitclone是一个用于从远程仓库克隆代码到本地的命令。使用方法如下:gitclone<仓库地址>其中,<仓库地址>是你要克隆的远程仓库的URL。例如:gitclonehttps://github.com/username/repository.gitGit可以通过官方网站下载并安装。以下是在不同操作系统上安装Git的步骤:Windows......
  • 无涯教程-Java 正则 - \p{Digit}匹配函数
    字符类\p{Digit}匹配任何数字。p{Digit}-示例下面的示例显示Posix字符类匹配的用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassPosixCharacterClassDemo{privatestaticfinalStringREGEX="\\p{Di......
  • java 微信公众号支付 签名失败
    Java微信公众号支付签名失败解决方案引言在开发微信公众号支付功能时,签名失败是一个常见的问题。本文将为刚入行的开发者介绍解决这个问题的具体步骤,包括整个流程的梳理、每一步需要做什么以及具体的代码实现。流程图flowchartTDA[开始]-->B[获取支付参数]B-->......
  • 数据库超线程效果的一个验证
    数据库超线程效果的一个验证背景元旦加班期间,一直跟着同事再查一个项目的卡顿问题.自己想到了一个提高测试环境性能的方法.然后趁着元旦用的人少进行了一下验证.在业务空闲期间,批量进行Oracle数据库的统计信息更新动作.自己一开始担心的是如果数据量很大,执行时......
  • openssl生成自签名证书
    1.key的生成opensslgenrsa-des3-outserver.key2048这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:opensslrsa-inserver.key-outserver.keyserver.key......
  • Asp .Net Core 集成 FluentValidation 强类型验证规则库
    目录入门程序安装案例:登录验证器内置验证器自定义验证器编写自定义验证器可重复使用的属性验证器本地化DI自动验证官网:https://docs.fluentvalidation.net/en/latest/index.html入门程序安装使用VisualStudio中的NuGet包管理器控制台运行以下命令:Install-PackageFluent......
  • kubernetes部署gitlab
    1.部署镜像地址:ExploreDocker'sContainerImageRepository|DockerHubgithub地址:sameersbn/docker-gitlab:DockerizedGitLab(github.com)PostgreSQL:OmnibusGitLab附带的PostgreSQL版本|极狐GitLab环境变量介绍:sameersbn/docker-gitlab:DockerizedGitLab(gith......
  • 3-1-02AXI4-FULL-uiFDMA IP仿真验证
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!2.1概述本文试验中对前面编写的FDMAIP进行仿真验证。2.2saxi_full_memIP介绍这个IP的源码可以基于XILINX提供的ax......