SSH远程连接

1 背景

  在多处理器的分布式架构中,不同的ROS系统之间可能会频繁的涉及到文件的传输。
  例如:我们在PC端编写ROS程序,而最终需要在Jetson nano上运行,如何将相关目录以及文件从PC上传到Jetson nano?这便需要使用SSH工具。

2 概念

  SSH(Secure Shell)是一种网络协议,用于通过加密的方式在网络中进行安全的远程登录和数据传输。通过SSH,可以在本地计算机上安全地远程访问另一台远程计算机,并执行命令、管理文件等操作。

3 实现

  SSH实现架构上分为客户端和服务器端两大部分,客户端是数据的发送方,服务端是数据的接收方,当前场景下,我们需要从PC端发送数据到Jetson nano,那么PC端属于客户端,而Jetson nano属于服务端,整个实现具体流程是:

  1. 分别安装SSH客户端与服务端
  2. 服务端启动SSH服务
  3. 客户端远程登陆服务端
  4. 实现数据传输

3.1 安装SSH客户端与服务端

默认情况下,Ubuntu系统已经安装了SSH客户端,因此只需要在Jetson nano安装服务端即可:

sudo apt-get install openssh-server

如果客户端需要自行安装,那么调用如下命令:

sudo apt-get install openssh-client

3.2 服务端启动SSH服务

Jetson nano启动 ssh 服务:

sudo /etc/init.d/ssh start

启动后查看服务是否正常运行:

ps -e | grep ssh

如果启动成功,会包含 sshd 与 ssh 两个程序。

以后需要频繁的使用ssh登录Jetson nano,为了简化实现,可以将Jetson nano的ssh服务设置为开机自启动,命令如下:

sudo systemctl enable ssh

3.3 客户端远程登陆服务端

登陆Jetson nano可以调用如下命令:

ssh 账号@ip地址       #例如:ssh melodic@172.20.10.4

然后根据提示,录入登陆密码,即可成功登陆。

如果退出登陆,可以调用exit命令:

exit

3.4 实现数据传输

上传文件:

scp 本地文件路径 账号@ip:Jetson nano路径

上传文件夹:

scp -r 本地文件夹路径 账号@ip:Jetson nano路径

下载文件:

scp 账号@ip:Jetson nano路径 本地文件夹路径

下载文件夹:

scp -r 账号@ip:Jetson nano路径 本地文件夹路径

4 SSH使用优化

  每次登陆Jetson nano时,都需要输入密码,使用不方便。我们可以借助密钥简化登陆过程,实现免密登陆,提高操作的效率。
  实现思想是:生成一对公钥私钥,私钥存储在本地,公钥上传至服务器,每次登陆时,本地直接上传私钥到服务器,服务器有匹配的公钥就认为是合法用户,直接创建SSH连接即可。具体实现步骤只有两步:

  1. 本地生成密钥对
  2. 将公钥上传至Jetson nano

4.1 生成密钥对

本地客户端生成公私钥:(一路回车默认即可)

ssh-keygen

上面这个命令会在用户目录.ssh文件夹下创建公私钥:
 1.id_rsa   (私钥)
 2.id_rsa.pub   (公钥)

4.2 将公钥上传至Jetson nano

上传命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub 账号@ip

上面这条命令是写到服务器上的ssh目录下,该目录下有文件authorized_keys保存了公钥内容。

以后再登陆Jetson nano就无需录入密码了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

im6ull学习总结(三-3)freetype

1、Freetype简介 FreeType是一个开源的字体渲染引擎,主要用于将字体文件转换为位图或矢量图形,并在屏幕上渲染出高质量的字体。它提供了一组API,使开发者能够在自己的应用程序中使用和呈现字体。 FreeType最初是作为一个独立项目开发的&…

[Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例

在群組中看到上述問題,研判應是一份隨月份變動的產品報價表單,空白欄可能表示該月份價格與上個月份一致。這個問題是需要取得最近一次單價和倒數第二次單價,常用且實務的excel案例值得紀錄。 最近一次單價: INDEX($B2:$G2,1,LARGE(IF(ISBLAN…

SpringSecurity集成JWT实现后端认证授权保姆级教程-环境搭建篇

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥网站…

跨平台开发教学:构建同时支持iOS和Android的教育网校APP

当下,教育行业也逐渐迎来了数字化转型的时代。构建一款支持iOS和Android的教育网校APP,不仅可以提供更好的用户体验,还能扩大应用的覆盖面,满足不同用户群体的需求。 一、选择合适的跨平台开发框架 在开始构建教育网校APP之前&a…

MidTool图文创作-GPT-4与DALL·E 3的结合

GPT-4与DALLE 3的结合 GPT-4是由OpenAI开发的最新一代语言预测模型,它在前代模型的基础上进行了大幅度的改进,不仅在文本生成的连贯性、准确性上有了显著提升,还在理解复杂语境和执行多步骤指令方面表现出了更高的能力。而DALLE 3则是一个创…

构建异地企业网络互联的高效路径

在当今数字化浪潮中,企业的业务拓展已不再受限于地理位置。为了在全球竞争中立于不败之地,越来越多的企业选择在不同城市设立分支机构,构建异地网络,实现高效的协同办公。本文将深入探讨在北上广等经济发达地区,如何通…

重排和重绘的区别,什么情况下会触发这两种情况

重排(reflow)和重绘(repaint)是两种不同的操作,它们在网页渲染过程中发生。 重排是指当元素的布局和几何属性发生改变时,浏览器需要重新计算元素的几何属性,然后重新布局所有相关元素的过程。这…

Linux部署Yearning并结合内网穿透工具实现公网访问本地web管理界面

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…

计算机毕业设计——SpringBoot 个人博客管理系统(附源码)

1,绪论 1.1 背景调研 在互联网飞速发展的今天,互联网已经成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。互联网上发布信息主要是通过网站来实现的,获取信息也是要在互联网中…

BART论文解读:BERT和GPT结合起来会发生什么?

BART:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension 主要工作 提出了BART (Bidirectional and Auto-Regressive Transformers), 是一种用于自然语言生成、翻译和理解的序列到序列的预训练方法。它…

C语言编译器(C语言编程软件)完全攻略(第二十七部分:VS安全函数问题(C语言安全函数)是怎么回事?如何解决?)

介绍常用C语言编译器的安装、配置和使用。 二十七、VS安全函数问题(C语言安全函数)是怎么回事?如何解决? 在 VS(Visual Studio)下编译C语言程序,如果使用了 scanf()、gets()、strcpy()、strca…

【Windows】之微软输入法配置小鹤双拼

前言 Windows 自带的输入法微软输入法本身就是个最简洁、最方便的输入法,不需要去安装多余的第三方输入法软件。同时,微软中文拼音输入法支持双拼输入法,但微软自带的双拼输入法不包含小鹤双拼方案的。所以,在这里将会讲解如何配置…

oracle 补齐数字长度 to_char踩坑

oracle的to_char网上找到的说明如下 (1)用作日期转换: to_char(date,格式); select to_date(2005-01-01 ,yyyy-MM-dd) from dual; select to_char(sysdate,yyyy-MM-dd HH24:mi:ss) from dual; (2)处理数字&#xf…

深入理解Vue3中的自定义指令

Vue3是一个流行的前端框架,它引入了许多新特性和改进,其中之一是自定义指令。自定义指令是一种强大的功能,可以让开发者在模板中直接操作 DOM 元素。本文将深入探讨 Vue3中的自定义指令,包括自定义指令的基本用法、生命周期钩子函…

面试之线程状态

1.线程有哪些状态 1.1Java线程的六种状态 Java 线程六种状态 新建 当一个线程对象被创建,但还未调用 start 方法时处于新建状态 此时未与操作系统底层线程关联 可运行 调用了 start 方法,就会由新建进入可运行 此时与底层线程关联,由操作…

leetcode算法题之递归--综合练习(一)

此专题对我们之前所学的关于递归的内容进行一个整合,大家可以自行练习,提升自己的编码能力。 本章目录 1.找出所有子集的异或总和在求和2.全排列II3.电话号码的字母组合4.括号生成5.组合6.目标和7.组合总和8.字母大小写全排列9.优美的排列 1.找出所有子…

Qt实现FTP文件传输协议

FTP(File Transfer Protocol,文件传输协议)是用于在网络上进行文件传输的一套标准协议,它属于网络传输协议的应用层。它最主要的功能是在服务器与客户端之间进行文件的传输。这个协议使用的是明文传输。FTP服务器的功能除了单纯的…

数据库的连接

连接数据库 我们使用WinR输入cmd打开运行窗口 输入:sqlplus并回车 输入用户名和密码,我用的是Scott,密码我自己设置的123456,Scott默认的密码是tiger,回车 这种情况表示登录成功 在连接Scott成功的情况下创建一些数据,在我的资源里面有个Oracle数据基础可以下载,直接复制粘…

Golang 接口

前言 在 Go 语言中,接口(interface)是一种类型,它规定了一组方法签名(method signatures),但不实现这些方法。任何实现了接口中所有方法的类型都隐式地实现了该接口,无需显式声明继…

认证评价的方法

认证评价是对于个人或组织的能力、技能或知识的确认,通常用于确保质量、安全或合规性。以下是一些常用的认证评价方法: 资格审查 资格审查是认证评价的第一步,主要评估个人或组织是否具备参与认证的基本条件。例如,对于某些专业…