提示代码如下:

─# apt update
获取:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease [41.5 kB]
错误:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY ED65462EC8D5E4C5
Warning: GPG 错误:http://mirrors.ustc.edu.cn/kali kali-rolling InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY ED65462EC8D5E4C5
Error: 仓库 “http://mirrors.ustc.edu.cn/kali kali-rolling InRelease” 没有数字签名。
Notice: 无法安全地用该源进行更新,所以默认禁用该源。
Notice: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
Notice: 仓库'Kali Linux'将其'firmware component'值从'non-free'修改到了'non-free-firmware'
Notice: More information about this can be found online at: https://www.kali.org/blog/non-free-firmware-transition/

一、步骤:

  1. 运行:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED65462EC8D5E4C5

  2. 然后再次运行:

    sudo apt update

如果apt-key命令不存在,我们可以使用gpg方法:

sudo gpg --homedir /tmp --no-default-keyring --keyring /etc/apt/trusted.gpg.d/kali-missing-key.gpg --keyserver keyserver.ubuntu.com --recv-keys ED65462EC8D5E4C5

或者更简单的,使用以下方法(将密钥直接添加到/etc/apt/trusted.gpg.d/):

sudo gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/kali-key.gpg --keyserver keyserver.ubuntu.com --recv-keys ED65462EC8D5E4C5

但是,由于apt的更新,现在更推荐使用单独的keyring文件,并且通过sources.list中的signed-by来指定,但这里我们只是临时修复,所以直接添加到信任密钥中。

然而,在Debian 11及更高版本中,推荐的方法是使用keyring文件,并放在/usr/share/keyrings/目录下,然后在源中指定。但这里我们并没有修改源,所以直接添加到系统信任密钥中可能是最简单的。

但是,请注意,Kali基于Debian,所以我们按照Debian的方式处理。

我选择使用apt-key,因为这是当前最快捷的方法。

让我们执行:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys ED65462EC8D5E4C5

如果执行成功,再运行apt update

如果遇到apt-key命令不存在,我们再使用gpg方法。

另外,如果防火墙阻止了hkp端口(11371),我们可以使用hkps://keyserver.ubuntu.com:443(安全连接)或者使用http协议(但通常hkp协议使用80端口,而hkps使用443端口)。

由于公钥服务器可能使用不同的端口,我们可以尝试使用hkp的80端口,或者使用hkps的443端口。

如果上述方法都失败,我们可以尝试从其他途径获取公钥,比如从Kali官方网站下载。

但首先,我们尝试使用keyserver.ubuntu.com来获取。

因此,我们给出以下解决方案:

遇到此错误是因为系统缺少用于验证 Kali 仓库签名的 GPG 公钥(密钥 ID:ED65462EC8D5E4C5)。以下是修复步骤:

解决方案:

下载缺失的公钥

执行以下命令从公钥服务器获取密钥:

bash

sudo gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys ED65462EC8D5E4C5

将公钥转换为 apt 兼容格式

将密钥导出到 apt 的信任密钥目录:

bash

sudo gpg --export --armor ED65462EC8D5E4C5 | sudo tee /etc/apt/trusted.gpg.d/kali-key.asc > /dev/null

更新 apt 缓存

重新运行更新命令验证修复:

bash

sudo apt update

附加说明:

密钥有效性:ED65462EC8D5E4C5 是 Kali Linux 官方签名密钥,确保从可信源(如 keyserver.ubuntu.com)获取。

仓库变更通知:输出中的 Notice 提示 firmware 组件已从 non-free 迁移至 non-free-firmware,这是正常变更,无需操作。

镜像源问题:若步骤 1 因网络问题失败,可尝试:

bash

wget -qO - https://archive.kali.org/archive-key.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kali-key.gpg

验证:

执行 sudo apt update 后,应不再出现 NO_PUBKEY 错误,可正常更新软件包列表。

️ 注意:避免使用已弃用的 apt-key add 命令,推荐上述 gpg 方法以确保兼容性。

kali在apt update报错提示没有公钥的更多相关文章

  1. sudo apt update报错

    在Ubuntu系统下,使用sudo apt-get update有时会出现“W: 无法下载 http://cn.archive.ubuntu.com/ubuntu/.... 校验和不符”, xj@xj ...

  2. kali linux 2.0配置更新源后apt-get update 报错

    这个是我/etc/apt/sources.list的更新源: deb http://http.kali.org/kali kali-rolling main contrib non-free deb ...

  3. Ubuntu遇到apt-get update报错:"E: Could not get lock /var/lib/apt/lists/lock"

    sudo apt-get update报错:"E: Could not get lock /var/lib/apt/lists/lock" 出现此问题的原因可能是有另外一个程序在运 ...

  4. apt-get update 报错 W: Unknown Multi-Arch type 'no' for package 'compiz-core'

    源 #deb包 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http:// ...

  5. mac下连接本地安装的mysql报错提示密码过期

    前提: mac中之前安装了mysql,一段时间没使用,今天使用mysql客户端去连接,报错提示密码过期,原因是mysql5.7之后版本有密码过期这个功能. error: Your password h ...

  6. Docker ubuntn 使用apt-get update报错

    在docker 容器中执行apt-get update有时候会报错,当然造成错误的原因有很多情况,具体情况具体分析, APT Hash sum mismatch错误的常见解决方法总结这篇博客写的不错, ...

  7. eclipse里maven install时,报错提示jdk为无效的目标版本:1.7

    http://blog.csdn.net/wabiaozia/article/details/51733372 ************************************ 报错提示: [ ...

  8. mysql执行update报错1175解决方法

    mysql执行update报错 update library set status=true where 1=1 Error Code: 1175. You are using safe update ...

  9. 使用AFNetworking 报错提示

    使用AFNetworking 框架 解析数据 报错提示数据请求失败Error Domain=NSCocoaErrorDomain Code=3840 "The operation could ...

  10. appium---【已解决】【Mac】from appium import webdriver报错提示“Unresolved import webdriver”

    报错提示: from appium import webdriver提示Unresolved import webdriver 报错原因:没有安装Appium_Python_Client 解决办法: ...

随机推荐

  1. Kubernetes:根据进程 Pid 获取 Pod 名称

    前言 在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程.有没有办法可以根据进程 PID 快速找到 Pod 名 ...

  2. bs4库爬取天气预报

    Python不仅用于网站开发,数据分析,图像处理,也常用于爬虫技术方向,最近学习了解下,爬虫技术入门一般先使用bs4库,爬取天气预报简单尝试下. 第一步:首先选定目标网站地址 网上查询,天气预报准确率 ...

  3. 证件用蓝底、红底、白底照片RGB颜色值

    蓝色: R:67 G:142 B:219: 红色: R:255 G:0 B:0: 白色: R:255 G:255 B:255. * PS:仅供参考,如有特殊要求,请按照相应要求调整色值.

  4. Redis 持久化机制简介【Redis 系列之三】

    〇.前言 Redis 持久化主要有两种:RDB(数据快照模式).AOF(追加模式),另外就是这两种模式的混合模式用. 本文将对这三种情况进行详细介绍. 博主 Redis 相关文章都在这里了:https ...

  5. SOA架构和微服务架构的区别

    1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件. 1.SOA(Service Or ...

  6. [源码系列:手写spring] IOC第九节:应用上下文ApplicationContext

    内容介绍 在Spring中应用上下文ApplicationContext是相较于BeanFacotry更为先进的IOC容器,BeanFacotry是Spring实现IOC最基础最核心的接口,使得Spr ...

  7. 【Linux】5.4 Shell数组

    Shell数组 数组中可以存放多个值.Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似). 1. 数组赋值 与大部分编程语言类似,数组元素的下标由0 ...

  8. Python的日志

    Python的日志,看上去啰啰嗦嗦的.请大神写了个通俗易懂简单方便通用的日志: import logging # 配置日志记录级别和输出方式 logging.basicConfig(level=log ...

  9. nodejs终端字符样式和进度条

    Nodejs为终端字符增加样式 只有黑白的色调对于比较复杂的命令行程序来说就显得太单调了,我们可以为命令行程序增加样式使得程序更加友好! 安装package: npm install -S chalk ...

  10. PHP传递参数(跨文件)的8种常见方法

    以下是 PHP 中跨文件传递参数的 8 种常见方法,按场景和安全性分类整理,附详细说明和示例代码: 一.超全局变量(适合请求间数据共享) 1. $_GET / $_POST 用途:通过 URL 或表单 ...