您正在阅读的是开发版本的文档。有关最新发布的版本,请访问 Jazzy.
确保所有机器的安全
目标 让两台不同的机器安全通信
辅导水平: 高级
时间 5 分钟
背景介绍
在继续之前,请确保您已完成 设置安全 教程。
前面的教程使用了同一台机器上的两个 ROS 节点,通过 localhost 接口发送所有网络通信。让我们将这一场景扩展到多台机器,因为这样一来,身份验证和加密的好处就更加明显了。
假设在上一个演示中创建了密钥存储的机器的主机名是 爱丽丝
我们还想使用另一台主机名为 鲍勃
为我们的多机器 说者/听者
演示。我们需要将一些键从 爱丽丝
至 鲍勃
以允许 SROS 2 对传输进行验证和加密。
创建第二个密钥存储
首先在 鲍勃
;keystore 实际上只是一个空目录:
ssh 鲍勃 mkdir ~/sros2_demo
出口
ssh 鲍勃 mkdir ~/sros2_demo
出口
ssh 鲍勃
医学博士 C:\dev\ros2\sros2_demo
出口
复制文件
接下来复制 话匣子
从 爱丽丝
至 鲍勃
.由于密钥只是文本文件,我们可以使用 scp
来复制它们。
CD ~/sros2_demo/demo_keystore scp -r 话匣子 USERNAME@Bob:~/sros2_demo/demo_keystore
CD ~/sros2_demo/demo_keystore scp -r 话匣子 USERNAME@Bob:~/sros2_demo/demo_keystore
CD C:\dev\ros2\sros2_demo\demo_keystore scp -r talker USERNAME@Bob:/dev/ros2/sros2_demo/demo_keystore
警告
请注意,在这种情况下,整个密钥存储会在不同的机器上共享,这可能不是我们想要的行为,因为它可能会导致安全风险。请参考 部署指南 了解这方面的更多信息。
这将会非常快,因为它只是复制一些非常小的文本文件。现在,我们可以运行多机通话/监听演示了!
启动节点
设置好环境后,在 鲍勃
:
玫瑰2 运行 演示节点 话匣子 --ros-args --飞地 /talker_listener/talker
并在 爱丽丝
:
玫瑰2 运行 演示节点 听众 --ros-args --飞地 /talker_listener/listener
现在,爱丽丝将收到来自鲍勃的加密信息。
在两台机器成功使用加密和身份验证进行通信后,您就可以使用相同的程序将更多机器添加到 ROS 图中。