处理Ubuntu apt-get update 出现签名验证失败的问题
如何处理报错
Err:6 https://mirrors.tuna.tsinghua.edu.cn/kubernetes/apt kubernetes-xenial InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B53DC80D13EDEF05
这个错误表明在尝试从指定的镜像源下载 Kubernetes 包时,出现了签名验证失败的问题,因为相应的公钥不可用。要解决这个问题,你可以按照以下步骤操作:
-
获取公钥: 你需要获取缺失的公钥。在这个例子中,公钥是
B53DC80D13EDEF05
。你可以使用以下命令获取公钥:gpg --recv-keys --keyserver keyserver.ubuntu.com B53DC80D13EDEF05
如果你在防火墙或代理的后面,可能需要配置一下 GPG 来使用代理:
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B53DC80D13EDEF05
-
将公钥添加到系统: 下载公钥后,将其添加到 APT 的密钥环中:
gpg --export --armor B53DC80D13EDEF05 | sudo apt-key add -
或者,如果你使用的是较新的 Ubuntu 版本,可以使用以下命令:
gpg --export --armor B53DC80D13EDEF05 | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
-
更新 APT: 更新 APT 包列表,以确保你的系统可以识别并使用新添加的密钥:
sudo apt-get update
-
重新尝试安装: 现在,你应该能够重新尝试安装 Kubernetes 包:
sudo apt-get install -y kubelet kubeadm kubectl
请注意,APT 密钥服务器可能在一些网络环境下无法访问,你可能需要使用代理或更改密钥服务器。上述步骤假定你的系统使用的是 Ubuntu,如果是其他 Linux 发行版,请相应地修改命令。