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

用gpg和sha256验证ubuntu.iso

链接

  1. https://ubuntu.com/tutorials/how-to-verify-ubuntu
  2. https://releases.ubuntu.com/jammy/
  • 本文是2的简明版

sha256sum介绍

sha256sum -c SHA256SUMS 2>&1

这段脚本的作用是验证文件的 SHA-256 校验和。具体来说,命令的各个部分含义如下:

  • sha256sum: 这是一个用于计算和验证文件 SHA-256 校验和的命令行工具。

  • -c: 这个选项表示“检查”模式。它会读取指定的校验和文件(在这里是 SHA256SUMS),并验证该文件中列出的每个文件的 SHA-256 校验和。

  • SHA256SUMS: 这是一个包含文件名及其对应 SHA-256 校验和的文件。这个文件通常是由某个软件包的发布者提供的,用于确保下载的文件没有被篡改。

  • 2>&1: 这个部分是一个重定向操作。它将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1),这样所有的输出(包括错误信息)都会被合并到一起,方便查看。

总结

整条命令的作用是:使用 sha256sum 工具检查 SHA256SUMS 文件中列出的文件的 SHA-256 校验和,并将所有输出(包括错误信息)打印到标准输出。这通常用于确保下载的文件的完整性和真实性。

用sha256校验iso的流程

  1. 验使用 GnuPG 来验证 SHA256SUMS 文件的签名
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

这段脚本的作用是使用 GnuPG(GNU Privacy Guard)工具来验证一个文件的完整性和真实性。

具体解释如下:

  • gpg:表示要运行 GnuPG 工具。
  • --keyid-format long:设置密钥 ID 的格式为长格式。
  • --verify SHA256SUMS.gpg SHA256SUMS:验证 SHA256SUMS.gpg 文件的签名,并使用 SHA256SUMS 文件中列出的哈希值来验证文件的完整性。在验证过程中,GnuPG 会检查签名是否有效以及是否与签名的密钥匹配。

总结起来,这段脚本的作用是使用 GnuPG 来验证 SHA256SUMS 文件的签名,并通过比对哈希值来验证文件的完整性。这段脚本的作用是使用 GnuPG(GNU Privacy Guard)工具来验证一个文件的完整性和真实性。

  1. 使用 GnuPG(GNU Privacy Guard)工具从指定的密钥服务器接收并导入一个公钥。
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x843938DF228D22F7B3742BC0D94AA3F0EFE21092

这段脚本的作用是使用 GnuPG(GNU Privacy Guard)工具从指定的密钥服务器接收并导入一个公钥。

具体解释如下:

  • gpg:表示要运行 GnuPG 工具。
  • --keyid-format long:设置密钥 ID 的格式为长格式。
  • --keyserver hkp://keyserver.ubuntu.com:指定要使用的密钥服务器,这里使用的是 Ubuntu 密钥服务器。
  • --recv-keys 0x843938DF228D22F7B3742BC0D94AA3F0EFE21092:指定要接收的公钥的密钥 ID。公钥的密钥 ID 是一个唯一的标识符,用于确保所接收的公钥是预期的。
  1. 使用 GnuPG 工具列出指定公钥的信息和指纹。
gpg --keyid-format long --list-keys --with-fingerprint 0xD94AA3F0EFE21092

这段脚本的作用是使用 GnuPG 工具列出指定公钥的信息和指纹。

具体解释如下:

  • gpg:表示要运行 GnuPG 工具。
  • --keyid-format long:设置密钥 ID 的格式为长格式。
  • --list-keys:列出已导入的公钥列表。
  • --with-fingerprint:在列表中显示公钥的指纹信息。
  • 0xD94AA3F0EFE21092:指定要列出的公钥的密钥 ID。
  1. 检查Key fingerprint,应当与官网的密钥指纹匹配
pub   dsa1024/46181433FBB75451 2004-12-30 [SC]Key fingerprint = C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451
uid                  Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>pub   rsa4096/D94AA3F0EFE21092 2012-05-11 [SC]Key fingerprint = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid                  Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>
  1. 用sha256校验和,按SHA256算法来验证.iso文件(下载desktop版本的话,最好把live-server那行注释掉)
$ sha256sum -c SHA256SUMS 2>&1
ubuntu-22.04.5-desktop-amd64.iso: 成功

color egg

可以从密钥服务器再接收一个公钥

$ gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x46181433FBB75451
gpg: 密钥 46181433FBB75451:公钥 “Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>” 已导入
gpg: 处理的总数:1
gpg:               已导入:1

再列出公钥的指纹

$ gpg --keyid-format long --list-keys --with-fingerprint 0x46181433FBB75451  0x843938DF228D22F7B3742BC0D94AA3F0EFE21092
pub   rsa4096/D94AA3F0EFE21092 2012-05-11 [SC]密钥指纹 = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid                   [ 未知 ] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>pub   dsa1024/46181433FBB75451 2004-12-30 [SC]密钥指纹 = C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451
uid                   [ 未知 ] Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>

相关文章:

用gpg和sha256验证ubuntu.iso

链接 https://ubuntu.com/tutorials/how-to-verify-ubuntuhttps://releases.ubuntu.com/jammy/ 本文是2的简明版 sha256sum介绍 sha256sum -c SHA256SUMS 2>&1这段脚本的作用是验证文件的 SHA-256 校验和。具体来说&#xff0c;命令的各个部分含义如下&#xff1a; …...

深入解析 ZooKeeper:分布式协调服务的原理与应用

1.说说 Zookeeper 是什么&#xff1f; ZooKeeper 是一个开源的分布式协调服务&#xff0c;由 Apache Software Foundation 开发维护。它为构建分布式应用程序提供了一套简单且高效的协调接口。ZooKeeper 的设计目的是为了简化分布式系统中常见的任务&#xff0c;例如命名、配置…...

【Rust自学】11.10. 集成测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.10.1. 什么是集成测试 在Rust里&#xff0c;集成测试完全位于被测试库的外部。集成测试调用库的方式和其他代码一样&#xff0c;这也…...

对当前日期进行按年、按月、按日的取值

对当前日期进行按年、按月、按日的取值。 其规则为&#xff1a; 按年 为当前日期到来年同一日期的前一天&#xff08;2024-12-01到2025-11-30&#xff09;。 按月 为当前日期到下个月的同一日期的前一天 &#xff08;2024-12-01 到 2024-12-31&#xff09;。 按日 为当前日…...

【Rust自学】12.2. 读取文件

12.2.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print)&#xff0c;是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步&#xff1a; 接收命令行参数读…...

C++内存泄露排查

内存泄漏是指程序动态分配的内存未能及时释放&#xff0c;导致系统内存逐渐耗尽&#xff0c;最终可能造成程序崩溃或性能下降。在C中&#xff0c;内存泄漏通常发生在使用new或malloc等分配内存的操作时&#xff0c;但没有正确地使用delete或free来释放这块内存。 在日常开发过程…...

Http 响应状态码 前后端联调

http 响应状态码 &#xff1a;是服务器在处理HTTP请求时返回的状态信息&#xff0c;用于表示请求的处理结果 1xx : 信息性状态码 100 Continue: 服务器已收到请求头部&#xff0c;客户端应继续发送请求体。 101 Switching Protocols : 切换协议。服务器已理解客户端的请求&a…...

48_Lua错误处理

在编写Lua应用时,都可能会遇到不可预见的错误,而错误处理是确保程序稳定性和健壮性的关键环节。有效的错误处理不仅能防止程序崩溃,还能提供有用的反馈信息给开发者或最终用户,从而提高应用程序的质量。本文将详细介绍Lua中的错误处理机制。 1.错误类型 Lua中的错误类型主…...

shell脚本回顾1

1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 一、 ll /tmp/size.log &>/dev/null if [ $? -eq 0 ];then cat /tmp/size.log else touch /tmp/size.log echo date > /tmp/size.log fi二、 if …...

【3】管理无线控制器

1.概述 本文主要介绍AireOS WLC的管理。WLC的管理可以通过CLI和GUI两种方式,而CLI主要分为console接入、telnet以及SSH的登录管理;GUI的管理分为HTTP和HTTPS。 2.CLI的管理 通过console实现的CLI管理这里就单独进行说明了,只要能找到设备的console接口,通过一般的RJ45接…...

SOME/IP 协议详解——服务发现

文章目录 1. Introduction &#xff08;引言&#xff09;2. SOME/IP Service Discovery (SOME/IP-SD)2.1 General&#xff08;概述)2.2 SOME/IP-SD Message Format2.2.1 通用要求2.2.2 SOME/IP-SD Header2.2.3 Entry Format2.2.4 Options Format2.2.4.1 配置选项&#xff08;Co…...

Flutter:封装ActionSheet 操作菜单

演示效果图 action_sheet_util.dart import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:demo/common/index.dart;class ActionSheetUtil {/// 底部操作表/// [context] 上下文/// [title] 标题/// [items] 选项列表 …...

力扣 全排列

回溯经典例题。 题目 通过回溯生成所有可能的排列。每次递归时&#xff0c;选择一个数字&#xff0c;直到选满所有数字&#xff0c;然后记录当前排列&#xff0c;回到上层时移除最后选的数字并继续选择其他未选的数字。每次递归时&#xff0c;在 path 中添加一个新的数字&…...

Golang 设计模式

文章目录 创建型模式简单工厂模式图形接口具体图形类&#xff1a;圆形具体图形类&#xff1a;矩形工厂类定义使用简单工厂模式 抽象工厂模式1. 定义产品接口2. 定义具体产品实现类3. 定义抽象工厂接口4. 定义具体工厂实现类5. 使用抽象工厂创建对象并使用产品 创建者模式1. 定义…...

Matlab 具有周期性分布的死角孔的饱和空气多孔材料的声学特性

本文对直主孔含侧空腔&#xff08;死角&#xff09;的饱和空气多孔介质中的声传播进行了理论和数值研究。侧腔位于沿每个主孔周期性间隔的“节点”上。研究了侧向空腔分布中周期性的影响&#xff0c;并单独考虑了紧间隔死角的低频极限。结果表明&#xff0c;吸附系数和透射损失…...

maven 项目怎么指定打包后名字

在 Spring Boot 的 Maven 项目中&#xff0c;你可以通过配置 pom.xml 文件来指定打包后的文件名。具体步骤如下&#xff1a; 打开 pom.xml 文件&#xff1a;找到你的项目根目录下的 pom.xml 文件。 配置 finalName 属性&#xff1a;在 标签下&#xff0c;添加 属性来指定打包后…...

Java Web开发进阶——Spring Boot与Thymeleaf模板引擎

Thymeleaf 是一个现代化的、功能强大的 Java 模板引擎&#xff0c;常用于生成 Web 应用程序的视图。它与 Spring Boot 的集成十分方便&#xff0c;并且提供了丰富的功能&#xff0c;能够帮助开发者实现动态渲染数据、处理表单、页面控制等操作。下面&#xff0c;我们将详细探讨…...

论文笔记(四十七)Diffusion policy: Visuomotor policy learning via action diffusion(下)

Diffusion policy: Visuomotor policy learning via action diffusion&#xff08;下&#xff09; 文章概括5. 评估5.1 模拟环境和数据集5.2 评估方法论5.3 关键发现5.4 消融研究 6 真实世界评估6.1 真实世界Push-T任务6.2 杯子翻转任务6.3 酱汁倒入和涂抹任务 7. 实际双臂任务…...

开始使用Panuon开源界面库环境配置并手写VS2019高仿界面

1. Panuon环境配置 1.1. 通过Nuget 安装 Panuon.WPF.UI1.2. xaml引用命名空间1.3. using Panuon.WPF.UI; 2. VS2019 view 2.1. 设置窗体尺寸和title2.2. 添加静态资源 2.2.1. 什么是静态资源 2.3. 主Grid 2.3.1. 盒子模型2.3.2. 嵌套布局 3. 总结 1. Panuon环境配置 1.1. 通…...

新垂直电商的社交传播策略与AI智能名片2+1链动模式S2B2C商城小程序的应用探索

摘要&#xff1a;随着互联网技术的不断进步和电商行业的快速发展&#xff0c;传统电商模式已难以满足消费者日益增长的个性化和多元化需求。新垂直电商在此背景下应运而生&#xff0c;通过精准定位、用户细分以及深度社交传播策略&#xff0c;实现了用户群体的快速裂变与高效营…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...