ubuntu22.04 SSH和ROS2控制下位机

本文涉及的产品
云防火墙,500元 1000GB
简介: 本文介绍了如何在Ubuntu 22.04系统中通过SSH远程控制机器人服务器,包括安装SSH服务、配置防火墙规则、修改`/etc/hosts`文件、使用密钥认证等步骤,并提供了使用ROS2控制下位机的方法和一些常用指令。

SSH

1.选择控制对象

在PC上用ssh控制机器人的过程中,PC是客户端,机器人是服务器。

2.机器人端操作

2.1 安装服务器ssh

sudo apt upgrade
sudo apt update
sudo apt install openssh-server

2.2 查看IP地址

分别查看PC和机器人的IP地址,并记录下来

sudo apt install net-tools  # 安装网络工具
ifconfig  # 查看本机IP地址

2.3 将PC端的IP写入机器人的识别名单/etc/hosts

打开机器人端的hosts文件

sudo gedit /etc/hosts

添加PC的ip地址到hosts文件并保存

192.168.xxx.xxx client_name

2.4 ping PC

尝试ping通PC,若成功说明机器人到PC的网络通信正常

ping client_name

2.5允许ssh通过机器人的防火墙

sudo ufw enable  # 启用防火墙
sudo ufw allow ssh  # 允许ssh
#sudo ufw allow 22
# 22端口为ssh端口
sudo ufw reload  # 重启防火墙

因为ROS2的通讯也需要被防火墙允许,需要单独设置比较麻烦
若不考虑安全性,推荐完全关闭防火墙

sudo ufw disable  # 关闭防火墙
sudo reboot  # 重启

3.PC端操作

3.1 安装客户端ssh

sudo apt upgrade
sudo apt update
sudo apt install openssh-client

3.2 查看IP地址

分别查看PC和机器人的IP地址,并记录下来

sudo apt install net-tools  # 安装网络工具
ifconfig  # 查看本机IP地址

3.3 将机器人IP写入PC的识别名单/etc/hosts

打开PC端的hosts文件

sudo gedit /etc/hosts

添加机器人的ip地址到hosts文件并保存

192.168.xxx.xxx server_name

3.4 ping机器人

尝试ping通机器人,若成功说明PC到机器人的网络通信正常

ping server_name

3.5 允许ssh通过PC的防火墙

sudo ufw enable  # 启用防火墙
sudo ufw allow ssh  # 允许ssh
#sudo ufw allow 22
# 22端口为ssh端口
sudo ufw reload  # 重启防火墙

因为ROS2的通讯也需要被防火墙允许,需要单独设置比较麻烦
若不考虑安全性,推荐完全关闭防火墙

sudo ufw disable  # 关闭防火墙
sudo reboot  # 重启

3.6 控制从机

sudo ssh ubuntu@server_name

此处ubuntu为默认机名,具体的可以查看机器人端命令行头类似ubuntu@name的东西

ROS2控制下位机

ROS2采用自发现机制,两者在同一局域网内即可自动发现彼此,不需要配置,需要注意的是防火墙会拦截ROS2通讯,需要允许部分端口或者完全禁用防火墙
PC端:

sudo apt-get install ros-humble-teleop-twist-keyboard
ros2 run teleop_twist_keyboard teleop_twist_keyboard

机器人端:

ros2 topic list

当发现机器人端有/cmd_vel话题时,说明主从机能通信。

常用指令

查看ssh服务的当前状态

sudo systemctl status ssh

重启ssh

sudo systemctl restart sshd.service

其他内容[可忽略]

修改etc/ssh/sshd_config

在服务器端(机器人)上修改etc/ssh/sshd_config文件

sudo gedit etc/ssh/sshd_config

修改该项#PermitRootLogin prohibit-password
更换为PermitRootLogin yes
注意:去掉#号使其生效

开始root控制[可选]

在机器人端设置root密码,否则会遇到permission denied

sudo passwd

Ctrl+Alt+T新开命令行窗口

ssh root@server_name

server_name为此前保存在/etc/hosts中的服务器端(机器人)IP地址,如果已经修改过了/etc/hosts,此处可以用字符串server_name代替IP地址

设置密钥认证[可选]

如果希望每次不通过密码登录直接连接,可以使用密钥方式
参考链接:Ubuntu SSH Keys

目录
相关文章
|
3月前
|
Ubuntu Shell 网络安全
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
272 6
|
3月前
|
Ubuntu 网络安全 数据安全/隐私保护
如何在 Ubuntu 上创建一个 SSH CA 以验证主机和客户端
如何在 Ubuntu 上创建一个 SSH CA 以验证主机和客户端
77 0
|
1月前
|
网络安全
Ubuntu14.04安装ssh服务器
Ubuntu14.04安装ssh服务器
50 0
|
3月前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
166 1
|
3月前
|
Ubuntu Apache
Ubuntu20.04下一键安装ROS1 Noetic
本文提供了一个简化在Ubuntu 20.04系统上安装ROS1 Noetic过程的一键安装脚本工具,该脚本通过优化配置和使用清华大学镜像源,加速了国内用户的下载速度,并自动完成环境设置和依赖安装,同时提供了详细的使用说明和源码。
335 0
Ubuntu20.04下一键安装ROS1 Noetic
|
3月前
|
Ubuntu 机器人 虚拟化
Ubuntu22.04配置ROS2 Humble
这篇文章是关于如何在Ubuntu 22.04系统上配置ROS2 Humble的详细教程,包括虚拟机安装、环境配置、网络设置、软件源更换、ROS1和ROS2的安装步骤。
254 1
|
3月前
|
Ubuntu Shell 网络安全
【Ubuntu】配置SSH
【Ubuntu】配置SSH
84 0
|
4月前
|
Ubuntu 机器人 Shell
ubuntu20.04创建ros环境、创建rospackage
至此,我们已经详细讲解了在Ubuntu 20.04上创建ROS环境及ROS包的步骤。这为进一步的机器人软件开发奠定了坚实的基础。
185 1
|
4月前
|
Ubuntu 机器人 Linux
Ubuntu查看ros版本-linux查看ros版本
通过上述方法,您可以轻松检查和确认您的Ubuntu或其他Linux系统上安装的ROS版本,以确保您的机器人项目能够顺利进行。
1322 0
|
Ubuntu 网络安全 数据安全/隐私保护
Ubuntu/Mac开启ssh
Ubuntu 操作 刚装好的Ubuntu18.04LTS是没有ssh, 想要开启操作如下: sudo apt-get update sudo apt-get install openssh-server sudo apt install net-tools 然后使用ifconfig指令查看ip, 比方说这里就是10.
1291 0