ROS仓库GPG签名密钥过期问题
ROS仓库GPG签名密钥过期问题
- ROS安装key NO_PUBKEY
- 1. 删除已过期的密钥
- 2. 重新添加ROS 公钥
- 3. 修改源列表确保使用新密钥
- 4. 更新 apt 索引
- 5. 手动安装ros
ROS安装key NO_PUBKEY
问题描述:
2025.06.01使用鱼香ros一键安装时,在sudo apt update
时发生报错:
Get:5 http://packages.ros.org/ros/ubuntu focal InRelease [4,679 B]
Err:5 http://packages.ros.org/ros/ubuntu focal InReleaseThe following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <info@osrfoundation.org>
Get:6 http://packages.ros.org/ros2/ubuntu focal InRelease [4,685 B]
Err:6 http://packages.ros.org/ros2/ubuntu focal InReleaseThe following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <info@osrfoundation.org>
Reading package lists... Done
W: GPG error: http://packages.ros.org/ros/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <info@osrfoundation.org>
E: The repository 'http://packages.ros.org/ros/ubuntu focal 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.
W: GPG error: http://packages.ros.org/ros2/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <info@osrfoundation.org>
E: The repository 'http://packages.ros.org/ros2/ubuntu focal 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.
表示ROS 官方仓库的 GPG 签名密钥过期了,导致 apt 更新时提示签名无效,无法安全更新。解决办法是更新 ROS 的公钥。
1. 删除已过期的密钥
sudo apt-key del F42ED6FBAB17C654
2. 重新添加ROS 公钥
我尝试了很多次通过命令下载和安装密钥,但是都失败了。最后老老实实去官网手动下载。
https://raw.githubusercontent.com/ros/rosdistro/master/ros.key
保存ros.key
文件到本地电脑,假设下载到主文件夹。
手动转换并放入密钥环
mv ~/ros.key ~/ros.key.bak
gpg --dearmor ~/ros.key.bak
sudo mv ~/ros.key.bak.gpg /usr/share/keyrings/ros-archive-keyring.gpg
3. 修改源列表确保使用新密钥
sudo gedit /etc/apt/sources.list.d/ros-latest.list
添加/修改内容
deb [signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros/ubuntu focal main
deb [signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu focal main
保存并关闭
4. 更新 apt 索引
sudo apt update
5. 手动安装ros
前面的步骤已导入 ROS 公钥,现在需要添加 ROS 软件源。
echo "deb [signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/ros-latest.list
更新并安装 ROS Noetic
sudo apt update
sudo apt install ros-noetic-desktop-full
配置环境变量
sudo apt update
sudo apt install ros-noetic-desktop-full
安装构建依赖
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
后面按照赵虚左老师的教程走,解决sudo rosdep init
的报错问题。
http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.html