Get:1 http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian bullseye InRelease [15.0 kB] Err:1 http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian bullseye InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9165938D90FDDD2E Hit:2 https://mirrors.tuna.tsinghua.edu.cn/raspberrypi bullseye InRelease Reading package lists... Done W: GPG error: http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian bullseye InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9165938D90FDDD2E E: The repository 'http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian bullseye InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
时间: 2025-07-01 13:28:47 浏览: 8
<think>嗯,用户现在遇到了Raspbian源公钥不可用的问题,具体是公钥9165938D90FDDD2E缺失。我需要帮他找到解决方法。首先,我得回忆一下在Debian或基于Debian的系统(比如Raspbian)中如何处理GPG密钥的问题。
根据用户提供的引用内容,特别是引用[1]和[2],看起来之前他们尝试过使用apt-key命令来导入公钥,但可能系统版本不同,比如现在Bullseye可能已经弃用了apt-key?因为我知道在Debian Bullseye之后,apt-key命令已经被弃用了,所以可能需要用另一种方法。不过用户提供的示例中用的是sudo apt-key adv...,但可能在Bullseye中需要将密钥添加到/etc/apt/trusted.gpg.d/目录下,而不是直接使用apt-key add。
接下来,步骤应该包括先更新软件包列表,然后下载缺失的公钥。可能需要用gpg命令直接下载密钥,然后将其转换为适合的格式,并放到指定目录。比如使用gpg --keyserver和--recv-keys选项来获取密钥,然后用gpg --export导出,并保存到/etc/apt/trusted.gpg.d/中。
另外,用户提到的错误信息显示在引用[3]中,是来自阿里云的镜像源,所以可能需要确认是否镜像源配置正确,或者是否需要更换镜像源。但用户的问题主要是添加缺失的公钥,所以重点应放在如何导入该密钥上。
现在,Debian Bullseye推荐的方法可能是将密钥文件放到/etc/apt/trusted.gpg.d/目录下,并使用gpg的导出功能。或者使用curl下载密钥并存储到指定位置。同时,可能需要使用gpg --export的参数将密钥转换为ASCII格式,比如使用armor选项。
可能的步骤是:
1. 使用gpg命令从keyserver.ubuntu.com获取公钥:gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
2. 导出公钥到文件:gpg --export --armor 9165938D90FDDD2E | sudo tee /etc/apt/trusted.gpg.d/raspbian-key.asc
3. 然后更新软件包列表:sudo apt update
或者,可能需要使用wget或curl直接下载密钥,比如使用类似下面的命令:
sudo curl -fsSL http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9165938D90FDDD2E | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/raspbian.gpg
然后更新。这样可能更直接。
但需要确认在Bullseye中是否支持这种方法。或者参考引用[5]中的例子,其中用了类似的步骤,但可能使用了临时文件。用户之前的引用中有使用apt-key adv的方法,但可能在Bullseye中已经不推荐,所以需要改用其他方法。
总结步骤应该是:
- 下载公钥到系统可信密钥目录中
- 更新apt缓存
可能需要具体命令:
比如:
sudo gpg --homedir /tmp --no-default-keyring --keyring /etc/apt/trusted.gpg.d/raspbian-key.gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
或者分步骤:
1. 下载密钥到临时文件:
gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
2. 导出为ASCII格式:
gpg --export --armor 9165938D90FDDD2E | sudo tee /etc/apt/trusted.gpg.d/raspbian-pubkey.asc
或者二进制格式:
gpg --export 9165938D90FDDD2E | sudo tee /etc/apt/trusted.gpg.d/raspbian-pubkey.gpg > /dev/null
然后更新apt:
sudo apt update
不过要注意权限和路径是否正确。另外,可能需要使用gpg的dearmor选项,如果密钥是ASCII armored的,可能需要转换。例如:
curl -sSL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9165938D90FDDD2E" | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/raspbian-archive-key.gpg
这样应该可以正确下载并保存密钥。
然后用户运行sudo apt update应该就不会再报错了。另外,可能需要检查/etc/apt/sources.list中的源是否正确,是否使用了正确的镜像地址,比如阿里云的镜像是否支持Bullseye版本,或者是否需要更换镜像源。
不过用户的问题明确是要添加缺失的GPG公钥,因此重点应放在导入密钥的方法上。总结下来,正确的步骤应该是通过gpg获取密钥,导出到系统的受信任目录,然后更新。确保在Bullseye中使用正确的方法,不使用已弃用的apt-key。</think>### 解决方案:添加缺失的GPG公钥至Raspbian Bullseye系统
#### 步骤说明
1. **手动下载公钥**
通过`gpg`工具从Ubuntu密钥服务器获取公钥:
```bash
gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
```
若成功,终端会显示公钥导入信息[^2][^5]。
2. **导出公钥至系统可信目录**
将公钥转换为`.gpg`格式并保存到APT信任目录:
```bash
gpg --export 9165938D90FDDD2E | sudo tee /etc/apt/trusted.gpg.d/raspbian-bullseye-key.gpg > /dev/null
```
3. **更新软件源列表**
完成密钥添加后更新APT缓存:
```bash
sudo apt update
```
#### 验证操作
若输出中不再出现`NO_PUBKEY 9165938D90FDDD2E`错误,表示公钥已生效[^3]。
#### 替代方法(直接下载)
若上述步骤失败,可通过`curl`直接下载密钥:
```bash
sudo curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9165938D90FDDD2E" | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/raspbian-bullseye-key.gpg
```
---
### 技术原理
- **GPG密钥作用**:验证软件包来源的真实性,防止篡改[^1]。
- **密钥服务器**:`keyserver.ubuntu.com`是Debian系发行版常用的公钥托管平台[^2]。
- **目录`/etc/apt/trusted.gpg.d`**:存储系统级可信密钥,替代旧版`apt-key`的推荐方式[^4]。
---
阅读全文
相关推荐


















