您正在阅读的是开发版本的文档。有关最新发布的版本,请访问 Jazzy.

确保所有机器的安全

目标 让两台不同的机器安全通信

辅导水平: 高级

时间 5 分钟

背景介绍

在继续之前,请确保您已完成 设置安全 教程。

前面的教程使用了同一台机器上的两个 ROS 节点,通过 localhost 接口发送所有网络通信。让我们将这一场景扩展到多台机器,因为这样一来,身份验证和加密的好处就更加明显了。

假设在上一个演示中创建了密钥存储的机器的主机名是 爱丽丝我们还想使用另一台主机名为 鲍勃 为我们的多机器 说者/听者 演示。我们需要将一些键从 爱丽丝鲍勃 以允许 SROS 2 对传输进行验证和加密。

创建第二个密钥存储

首先在 鲍勃;keystore 实际上只是一个空目录:

ssh 鲍勃 mkdir ~/sros2_demo
出口

复制文件

接下来复制 话匣子爱丽丝鲍勃.由于密钥只是文本文件,我们可以使用 scp 来复制它们。

CD ~/sros2_demo/demo_keystore scp -r 话匣子 USERNAME@Bob:~/sros2_demo/demo_keystore

警告

请注意,在这种情况下,整个密钥存储会在不同的机器上共享,这可能不是我们想要的行为,因为它可能会导致安全风险。请参考 部署指南 了解这方面的更多信息。

这将会非常快,因为它只是复制一些非常小的文本文件。现在,我们可以运行多机通话/监听演示了!

启动节点

设置好环境后,在 鲍勃:

玫瑰2 运行 演示节点 话匣子 --ros-args --飞地 /talker_listener/talker

并在 爱丽丝:

玫瑰2 运行 演示节点 听众 --ros-args --飞地 /talker_listener/listener

现在,爱丽丝将收到来自鲍勃的加密信息。

在两台机器成功使用加密和身份验证进行通信后,您就可以使用相同的程序将更多机器添加到 ROS 图中。