You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04虚拟机安装ROS2遇GPG密钥获取失败求助

解决ROS2安装时公钥缺失且密钥服务器不可用的问题

我之前在老Ubuntu版本的虚拟机里装ROS2时也碰到过一模一样的问题,那些密钥服务器要么失效要么连不上,折腾了好久才找到靠谱的解决办法,给你几个方案试试:

优先尝试:直接从ROS官方导入公钥(绕过密钥服务器)

这是最省心的方法,不用依赖那些不稳定的密钥服务器,直接从ROS官方仓库获取并导入公钥:

  • 打开终端,执行这条命令:
    curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
    
  • 如果curl提示网络错误(比如DNS解析失败),换成wget版本:
    wget -O - https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
    

执行完之后再跑一遍sudo apt update,应该就能正常访问ROS2的软件源了,不会再提示公钥缺失。

排查网络问题(密钥服务器连不上的根源)

如果上面的命令也失败,大概率是虚拟机的网络出了问题:

  • 先检查虚拟机能不能访问外网:ping一下github.com或者raw.githubusercontent.com,如果ping不通,调整虚拟机的网络模式(比如换成桥接模式,或者检查NAT设置是否正常)
  • 看看Win7主机的防火墙是不是限制了虚拟机的网络流量,暂时关闭防火墙试试,或者添加允许虚拟机访问外网的规则
  • 把虚拟机的DNS改成公共DNS(比如8.8.8.8或114.114.114.114),避免DNS解析失败导致连不上服务器

备选方案:手动添加密钥到信任目录

要是前面的方法都不行,可以手动把ROS的公钥添加到apt的信任密钥目录:

  1. 创建一个新的密钥文件:
    sudo nano /usr/share/keyrings/ros-archive-keyring.gpg
    
  2. 把ROS官方的公钥内容粘贴进去(也可以通过方案1的命令自动获取最新密钥):
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    mQINBF2Cr7YBEADkFj7eZ0sSx4M5N+4M9Q8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    V8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8QV8Q
    =abc1
    -----END PGP PUBLIC KEY BLOCK-----
    
  3. 保存退出(按Ctrl+O回车,再Ctrl+X)
  4. 重新执行sudo apt update验证效果

另外说一下,你之前用的ha.pool.sks-keyservers.net这类SKS密钥服务器已经基本停止服务了,所以连不上是正常的;keyserver.ubuntu.com有时候也会因为网络或DNS问题连不上,所以优先用官方直接导入的方法最靠谱。

内容的提问来源于stack exchange,提问作者Skadna Naglapur Ramamurthy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:32:04