
在安装ros前设置密钥的时候,把设置密钥的代码敲进去了,按回车后长时间无响应,就一直卡在这个界面,该怎么处理呢?

在安装ros前设置密钥的时候,把设置密钥的代码敲进去了,按回车后长时间无响应,就一直卡在这个界面,该怎么处理呢?
让 【蒋星熠】 来帮你回答,本回答结合 DeepSeek
如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞
在 Ubuntu 上安装 ROS (Robot Operating System) 时,在设置 GPG 密钥(apt-key add 或 gpg --dearmor)这一步出现长时间无响应,是一个比较常见的问题。这通常是由于网络连接问题,特别是与密钥服务器的连接问题导致的。
以下是几种有效的解决方法:
方法一:更换 GPG 密钥服务器 (推荐)
默认的密钥服务器 hkp://keyserver.ubuntu.com:80 可能在国内访问不稳定。我们可以手动指定一个更可靠的服务器。
尝试使用 keyserver.ubuntu.com 的 HTTPS 端口 (443) 或其他端口:
bash
深色版本
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:443 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
或者尝试端口 80:
bash
深色版本
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
使用 pgp.mit.edu 服务器:
这个服务器通常比较稳定。
bash
深色版本
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
使用 ha.pool.sks-keyservers.net (如果可用):
bash
深色版本
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
方法二:手动下载并添加密钥
如果通过 apt-key adv 仍然失败,可以手动下载密钥文件。
使用 curl 或 wget 手动下载密钥:
bash
深色版本
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
wget -qO - 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
注意:-qO - 表示安静模式输出到标准输出。
如果上述 URL 不工作,尝试使用 pgp.mit.edu:
bash
深色版本
curl -sSL 'https://pgp.mit.edu/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654%27 | sudo apt-key add -
方法三:使用 gpg 命令手动操作 (更底层)
如果 apt-key 完全卡住,可以绕过它,直接使用 gpg。
下载密钥到文件:
bash
深色版本
gpg --keyserver keyserver.ubuntu.com --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg --export --armor C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 | sudo tee /etc/apt/trusted.gpg.d/ros.gpg > /dev/null
这会将导出的 ASCII 格式的密钥保存到 APT 的可信密钥目录中。
方法四:检查网络和代理
网络问题:确保你的网络连接正常,可以尝试 ping keyserver.ubuntu.com 或 curl -v http://keyserver.ubuntu.com/ 来测试连通性。
防火墙/代理:如果你在公司网络或使用了代理,可能需要配置 http_proxy 和 https_proxy 环境变量,或者让 IT 部门开放对密钥服务器端口的访问。
ROS 安装密钥说明
ROS Noetic (Ubuntu 20.04) 及之后版本:使用的密钥是 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654。
旧版本 ROS:可能使用不同的密钥,请参考对应版本的官方安装文档。
总结步骤
首选尝试:使用 pgp.mit.edu 服务器。
bash
深色版本
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
如果不行:尝试手动下载。
bash
深色版本
curl -sSL 'https://pgp.mit.edu/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654%27 | sudo apt-key add -
最后手段:使用 gpg 命令手动操作。
完成密钥添加后,继续按照 ROS 官方安装指南执行后续步骤(echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ros-latest.list 和 sudo apt update)即可。