远程命令行控制SSH

第一次接触SSH是ROS小车作为服务端,通过ubuntu电脑客户端访问。因为机器人接键盘和屏幕操作起来不方便,所以使用SSH进行连接,方便对小车的操作。

1.服务端安装

打开终端查看ssh是否安装

sudo service ssh status

如果未安装

sudo apt update
sudo apt install openssh-server

然后启动 SSH 服务并设置自启动

sudo service ssh start
sudo systemctl enable ssh

2.客户端安装

打开终端查看ssh是否安装

sudo service ssh status

如果未安装

sudo service ssh start
sudo apt-get install openssh-client

3.SSH使用

调用如下命令:

ssh -参数 账号@ip地址

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

3.1ssh命令常用参数

  • -l <username>`:指定要登录的远程主机上的用户名。例如,`ssh -l user remote_host`。
  • -p <port>:指定连接的端口号。默认端口是 22。例如,`ssh -p 2222 user@remote_host`。
  • -i <identity_file>:指定用于身份验证的私钥文件。例如,`ssh -i ~/.ssh/id_rsa user@remote_host`。
  • -v、-vv、-vvv:增加调试输出的详细程度,用于排查连接问题。例如,`ssh -vvv user@remote_host`。
  • -X:启用 X11 转发,使得远程主机上的图形应用可以在本地显示。例如,`ssh -X user@remote_host`。
  • -Y:启用受信任的 X11 转发,相比 `-X` 提供更高权限的 X11 转发。例如,`ssh -Y user@remote_host`。
  • -C:启用压缩,减少数据传输量,有助于提高低带宽连接的性能。例如,`ssh -C user@remote_host`。
  • -T:禁止伪终端分配,通常用于不需要交互式终端的命令。例如,`ssh -T user@remote_host`。
  • -N:不执行远程命令,只建立连接。常用于端口转发。例如,`ssh -N -L 8080:localhost:80 user@remote_host`。
  • -L <local_port>:<remote_host>:<remote_port>:设置本地端口转发,将本地的 `<local_port>` 端口转发到远程主机的 `<remote_host>:<remote_port>` 端口。例如,`ssh -L 8080:localhost:80 user@remote_host`。
  • -R <remote_port>:<local_host>:<local_port>:设置远程端口转发,将远程主机的 `<remote_port>` 端口转发到本地的 `<local_host>:<local_port>` 端口。例如,`ssh -R 9090:localhost:3000 user@remote_host`。

3.1.1示例

1. **基本连接**:```bashssh user@remote_host```连接到 `remote_host` 上的 `user` 用户。2. **指定端口连接**:```bashssh -p 2222 user@remote_host```使用端口 2222 连接到 `remote_host` 上的 `user` 用户。3. **使用私钥文件进行身份验证**:```bashssh -i ~/.ssh/id_rsa user@remote_host```使用 `~/.ssh/id_rsa` 私钥文件进行身份验证。4. **启用 X11 转发**:```bashssh -X user@remote_host```启用 X11 转发,以便在本地显示远程主机上的图形应用。5. **本地端口转发**:```bashssh -L 8080:localhost:80 user@remote_host```将本地计算机的 8080 端口转发到远程主机的 80 端口。6. **远程端口转发**:```bashssh -R 9090:localhost:3000 user@remote_host```将远程主机的 9090 端口转发到本地计算机的 3000 端口。

3.2实现数据传输

  • 上传文件:
scp 本地文件路径 账号@ip:路径
  • 上传文件夹:
scp -r 本地文件夹路径 账号@ip:路径
  • 下载文件:
scp 账号@ip:路径 本地文件夹路径
  • 下载文件夹:
scp -r 账号@ip:路径 本地文件夹路径

3.3使用密钥免密连接

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

3.3.1本地生成密钥对

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

ssh-keygen

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

  1. id_rsa (私钥)
  2. id_rsa.pub (公钥)

3.3.2将公钥上传至服务端

上传命令:

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

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

以后再登陆树莓派就无需录入密码了。

4.使用Xshell进行SSH连接

4.1Xshell软件下载安装

Xshell是一款功能强大的终端模拟器,支持SSh2,SSh3,SFTP,TELNET,RLOGIN和SERIAL。和其他的SSH客户端相比,Xshell更加注重用户体验的一些东西,比如其现代化的界面,多种语言包括简体中文支持,代码高亮等,对于新手非常友好。

https://www.xshell.com/zh/free-for-home-school/

4.2Xhell连接Linux

  • 打开Xshell,点击文件,新建

  • 输入名称,主机(Linux的IP,使用ifconfig命令查看),连接协议为SSH,端口一般为22

就会出现配置好的机器
 

  • 输入用户名和密码

 用户名

密码为linux电脑密码

就会出现配置好的机器
 

  • 最后连接成功,就可以使用了

5. 使用VSCODE进行SSH连接

  • 下载插件Remote-ssh

  • 安装说明

  • 按F1,找Remote-SSH

  • 找到add new ssh host

输入ssh 用户名@地址,回车

  • 选择保存路径

选择第一个将ssh配置保存到该路径下,然后重启一下vscode

就会出现配置好的机器

  • 点击上面箭头,输入密码,出现下图,就代表已经配置成功

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

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

相关文章

【网络】私有IP和公网IP的转换——NAT技术

目录 引言 NAT工作机制​编辑 NAT技术的优缺点 优点 缺点 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 公网被子网掩码划分为层状结构&#xff0c;一个公网IP的机器又可以用很多私有IP搭建内网。在日常生活场景中用的都是私有IP&#xff0c;例如手机&#xff0c;…

目标检测算法,Yolov7本地化部署使用(一)

安全帽检测、口罩检测、行为检测、目标物体检测&#xff0c;随着深度学习和计算机视觉技术的不断发展&#xff0c;目标检测成为了研究热点之一。YOLOv7作为YOLO系列的新成员&#xff0c;以其高效和准确的性能受到了广泛关注。本文将介绍如何在本地部署并利用YOLOv7完成目标检测…

OpenCV图像处理——按最小外接矩形剪切图像

引言 在图像处理过程中&#xff0c;提取感兴趣区域&#xff08;ROI&#xff09;并在其上进行处理后&#xff0c;往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤&#xff1a; 找到最小外接矩形&#xff1a;使用 cv::boundingRect 或 cv::minAreaRect 提取感兴…

计算机毕业设计 助农产品采购平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

C# 中 Tuple 与 ValueTuples 之间的区别

在 C# 中&#xff0c;元组和值元组都用于在单个变量中存储多个值。但它们在语法、功能和性能方面存在一些关键差异。 一.Tuples(元组) 元组是一种引用类型&#xff0c;长期以来一直是 .NET 的一部分。它们是使用 System.Tuple 类创建的。 例子 using System; class Program…

07 STM32ADC

AD单通道和AD多通道 使用ADC可以对高电平和低电平之间的任意电压进行量化&#xff0c;最终用一个变量来表示&#xff0c;读取这个变量。所以ADC就是一个电压表&#xff0c;把引脚电压值测出来&#xff0c;放在一个变量里。 数字到模拟的桥梁&#xff0c;PWM来控制电机的速度&a…

springboot家校共育平台-计算机毕业设计源码54235

摘 要 采用高效的SpringBoot框架&#xff0c;家校共育平台为家长与教师提供了便捷的沟通渠道。该平台整合了丰富的教育资源&#xff0c;实现了家校之间的即时信息互通&#xff0c;从而助力协同教育。 为进一步方便用户访问和使用&#xff0c;平台与微信小程序进行了深度整合。家…

SPAW7000高精度功率分析记录仪,测试方案

测试目标 评估双电机四驱系统中前后电机的性能。 分析前后电机之间的实时联动情况。 测量并分析电机控制器的输入与输出功率。 计算功率转换效率和损耗。 验证电机系统的谐波特性。 测试设备 SPAW7000高精度功率分析记录仪&#xff1a;用于测量功率、电压、电流等参数&am…

【LeetCode Cookbook(C++ 描述)】一刷二叉树综合(上)

目录 LeetCode #226&#xff1a;Invert Binary Tree 翻转二叉树「遍历」「分而治之」广度优先搜索&#xff1a;层序遍历 LeetCode #101&#xff1a;Symmetric Tree 对称二叉树递归法迭代法 LeetCode #100&#xff1a;Same Tree 相同的树递归法迭代法 LeetCode #559&#xff1a;…

八种排序算法的复杂度(C语言)

归并排序(递归与非递归实现,C语言)-CSDN博客 快速排序(三种方法,非递归快排,C语言)-CSDN博客 堆排序(C语言)-CSDN博客 选择排序(C语言)以及选择排序优化-CSDN博客 冒泡排序(C语言)-CSDN博客 直接插入排序(C语言)-CSDN博客 希尔排序( 缩小增量排序 )(C语言)-CSDN博客 计数…

赋能基层,融合创新:EasyCVR视频汇聚平台构建平安城市视频共享系统

一、雪亮工程建设的意义 雪亮工程的核心在于通过高清视频监控、环境监测和智能预警等先进技术手段&#xff0c;构建一个高效、智能、安全、便捷的社会安全防控体系。这一工程的建设不仅代表了现代化科技手段在城市治安管理中的应用&#xff0c;更是提升社会安全保障能力、推动…

LeetCode.3152.特殊数组II

题目描述&#xff1a; 如果数组的每一对相邻元素都是两个奇偶性不同的数字&#xff0c;则该数组被认为是一个 特殊数组 。 你有一个整数数组 nums 和一个二维整数矩阵 queries&#xff0c;对于 queries[i] [fromi, toi]&#xff0c;请你帮助你检查 子数组 nums[fromi..toi…

纷享销客CRM AI产品架构概览、产品特色

一、纷享销客CRM AI产品架构概览 纷享AI平台架构分为三个主要层次&#xff1a;AI基础设施层、AI平台层和AI应用层。每个层次都由一系列功能模块组成&#xff0c;旨在为客户提供强大的技术支持和灵活的解决方案。 1.Al基础设施层 AI基础设施层是整个AI平台的底层支撑&#xff…

使用WooCommerce订阅续订进行货到付款:自定义订单状态

WooCommerce订阅插件允许商店设置周期性的订阅产品。客户购买订阅后&#xff0c;系统会自动根据设定周期进行续订。但对于货到付款的场景&#xff0c;自动续订就面临挑战。 自定义订单状态 为了实现货到付款的续订流程&#xff0c;我们需要创建一个自定义订单状态。以下是具体…

牛客刷题总结——Python入门07:内置函数

🤵‍♂️ 个人主页: @北极的三哈 个人主页 👨‍💻 作者简介:Python领域优质创作者。 📒 系列专栏:《牛客题库-Python篇》 🌐推荐《牛客网》——找工作神器|笔试题库|面试经验|实习经验内推,求职就业一站解决 👉 点击链接进行注册学习 文章目录 010 内置函…

鸿蒙开发入门day06-ArkUI简介

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;还请三连支持一波哇ヾ(&#xff20;^∇^&#xff20;)ノ&#xff09; 目录 ArkUI简介 基本概念 两种开发范式 不同应用类型支持的开发范式 …

Linux--应用层协议HTTP协议(http服务器构建)

目录 1.HTTP 协议 2.认识 URL 3.urlencode 和 urldecode&#xff08;编码&#xff09; urlencode&#xff08;URL编码&#xff09; urldecode&#xff08;URL解码&#xff09; 4.HTTP 协议请求与响应格式 4.1HTTP 常见方法&#xff08;三种&#xff09; 5.HTTP 的状态码…

如何妙用哈希表来优化遍历查找过程?刷题感悟总结,c++实现

先上题目 题目链接&#xff1a;题目链接 这题我最先想到的就是前缀和a&#xff0c;构造好了以后就遍历每一个[l,r]数组&#xff08;满足题目要求的连续区间数组&#xff09;&#xff0c;奈何倒数第二个样例时间超限 先给出原思路代码 class Solution { public:int subarray…

【深入理解SpringCloud微服务】Ribbon源码解析

【深入理解SpringCloud微服务】Ribbon源码解析 Ribbon的原理RestTemplate中的拦截器链Ribbon的拦截器如何将拦截器放入到RestTemplate中 Ribbon中的核心类LoadBalancerAutoConfigurationLoadBalancerInterceptorLoadBalancerClientILoadBalancerServerListIRuleIPing Ribbon核心…

【高性能高易用】物联网AI开发套件----Qualcomm® RB3 Gen 2 开发套件

Qualcomm RB3 Gen 2 开发套件 专为高性能计算、高易用性而设计的物联网开发套件 Qualcomm RB3 Gen 2 开发套件拥有先进的功能和强大的性能&#xff0c;包括强大的AI运算&#xff0c;12 TOPS 算力和计算机图形处理能力&#xff0c;可轻松创造涵盖机器人、企业、工业和自动化等…