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
AI 代码解读

2.2 查看IP地址

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

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

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

打开机器人端的hosts文件

sudo gedit /etc/hosts
AI 代码解读

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

192.168.xxx.xxx client_name
AI 代码解读

2.4 ping PC

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

ping client_name
AI 代码解读

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

sudo ufw enable  # 启用防火墙
sudo ufw allow ssh  # 允许ssh
#sudo ufw allow 22
# 22端口为ssh端口
sudo ufw reload  # 重启防火墙
AI 代码解读

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

sudo ufw disable  # 关闭防火墙
sudo reboot  # 重启
AI 代码解读

3.PC端操作

3.1 安装客户端ssh

sudo apt upgrade
sudo apt update
sudo apt install openssh-client
AI 代码解读

3.2 查看IP地址

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

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

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

打开PC端的hosts文件

sudo gedit /etc/hosts
AI 代码解读

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

192.168.xxx.xxx server_name
AI 代码解读

3.4 ping机器人

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

ping server_name
AI 代码解读

3.5 允许ssh通过PC的防火墙

sudo ufw enable  # 启用防火墙
sudo ufw allow ssh  # 允许ssh
#sudo ufw allow 22
# 22端口为ssh端口
sudo ufw reload  # 重启防火墙
AI 代码解读

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

sudo ufw disable  # 关闭防火墙
sudo reboot  # 重启
AI 代码解读

3.6 控制从机

sudo ssh ubuntu@server_name
AI 代码解读

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

ROS2控制下位机

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

sudo apt-get install ros-humble-teleop-twist-keyboard
ros2 run teleop_twist_keyboard teleop_twist_keyboard
AI 代码解读

机器人端:

ros2 topic list
AI 代码解读

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

常用指令

查看ssh服务的当前状态

sudo systemctl status ssh
AI 代码解读

重启ssh

sudo systemctl restart sshd.service
AI 代码解读

其他内容[可忽略]

修改etc/ssh/sshd_config

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

sudo gedit etc/ssh/sshd_config
AI 代码解读

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

开始root控制[可选]

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

sudo passwd
AI 代码解读

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

ssh root@server_name
AI 代码解读

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

设置密钥认证[可选]

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

相关文章
在Jetson TX2的Ubuntu18.04系统中安装ROS的教程
所有这些步骤并不复杂,但确实需要仔细一点。如果遇到问题,不要灰心,问题是解决问题的开始。保持耐心,细心阅读错误信息,通常情况下,问题的答案就藏在其中。祝ROS旅程顺利!
86 18
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
114 17
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
204 21
Ubuntu(22.04)云主机SSH安全加固
通过上述步骤,你可以有效地加固Ubuntu 22.04云主机的SSH安全性。这些措施不仅能防止常见的攻击,还能提升整体服务器的安全性和稳定性。建议在实施这些安全加固措施后,定期检查系统日志和更新安全策略,以应对不断变化的安全威胁。
195 14
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
836 6
debian或Ubuntu中开启ssh允许root远程ssh登录的方法
在Debian或Ubuntu系统中启用root用户的SSH远程登录需要编辑SSH配置文件、设置root密码并重启SSH服务。虽然这可以在某些情况下提供便利,但必须注意安全性,通过使用强密码、限制IP访问、使用SSH密钥认证等方法来保护服务器的安全。
2868 5
|
9月前
|
Ubuntu14.04安装ssh服务器
Ubuntu14.04安装ssh服务器
132 0
|
11月前
|
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
562 1
|
11月前
|
Ubuntu20.04下一键安装ROS1 Noetic
本文提供了一个简化在Ubuntu 20.04系统上安装ROS1 Noetic过程的一键安装脚本工具,该脚本通过优化配置和使用清华大学镜像源,加速了国内用户的下载速度,并自动完成环境设置和依赖安装,同时提供了详细的使用说明和源码。
622 0
Ubuntu20.04下一键安装ROS1 Noetic
Ubuntu22.04配置ROS2 Humble
这篇文章是关于如何在Ubuntu 22.04系统上配置ROS2 Humble的详细教程,包括虚拟机安装、环境配置、网络设置、软件源更换、ROS1和ROS2的安装步骤。
1683 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问