apt-key已弃用,wget下载GPG密钥后替代apt-key add的新用法是什么
正确替代apt-key add的命令写法
你可以直接使用以下命令完成密钥添加操作:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
原命令不生效的原因
你之前写的gpg --export缺少两个必要配置:
- 没有将下载到的ASCII装甲格式的GPG密钥转换为apt可识别的二进制密钥环格式,需要加上
--dearmor参数完成转换 - 没有指定输出路径将处理后的密钥存到apt可读取的信任目录,需要加上
-o参数指定输出到/usr/share/keyrings/目录下的对应密钥文件
后续添加软件源的配套写法
添加对应第三方源时,需要在源声明中指定该密钥环路径,才能正常验证包签名,示例写法如下:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic.list
这种做法是目前Debian、Ubuntu官方推荐的标准操作,每个第三方源对应独立的密钥环,相比旧的全局信任的apt-key机制安全性更高。
内容的提问来源于stack exchange,提问作者dibery
相关产品推荐
相关产品推荐

