远程命令行控制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 ssh2.客户端安装
打开终端查看ssh是否安装
sudo service ssh status如果未安装
sudo service ssh start
sudo apt-get install openssh-client3.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文件夹下创建公私钥:
- id_rsa (私钥)
- 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

就会出现配置好的机器

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

相关文章:
 
远程命令行控制SSH
第一次接触SSH是ROS小车作为服务端,通过ubuntu电脑客户端访问。因为机器人接键盘和屏幕操作起来不方便,所以使用SSH进行连接,方便对小车的操作。 1.服务端安装 打开终端查看ssh是否安装 sudo service ssh status 如果未安装 sudo apt upd…...
 
钢铁百科:A572Gr60和SA572Gr60材质分析、A572Gr60和SA572Gr60简介
A572Gr60和SA572Gr60是两种常用的结构钢板,它们在材质、执行标准、化学成分、力学性能、交货状态、应用范围和常用规格方面有所不同。 材质: A572Gr60:属于美国材料与试验协会(ASTM)标准下的A572系列高性能结构钢&…...
 
一次sql请求,返回分页数据和总条数
日常搬砖,总少不了需要获取分页数据和总行数。 一直以来的实践是编码两次sql请求,分别拉分页数据和totalCount。 最近我在思考: 常规实践为什么不是 在一次sql请求中中执行多次sql查询或多次更新,显而易见的优势: ① 能…...
2.5 pyautogui 实现微信自动回复
第四节:实战微信自动回复 课程目标 学习如何通过pyautogui完成微信自动回复 课程内容 编码实现 import pyautogui as pg import time from pyautogui import ImageNotFoundException import pyperclip from cnocr import CnOcr import random ocr CnOcr() msg…...
 
观存储历史,论数据未来
数据存储 这几天我反复观看了腾讯云社区的《中国数据库前世今生》纪录片,每次的感受都大相径庭。以下是我在这段时间里对纪录片的两个不同感想,希望感兴趣的小伙伴们也能去观看一番。 一个是关于国产数据库的发展趋势的探讨:https://blog.c…...
linux:对目录的操作
一、对目录操作 1,打开目标目录 2.读取目录,, 3.关闭目录 目录 当文件看,只不过操作函数和操作文件函数不一样。 *1.opendir DIR *opendir(const char *name); 功能:打开一个目录获得一个目录流指针 参数:name:目录名 返回值…...
 
详解Redis 高可用的方式 Redis Cluster
Redis 高可用方式 Redis 提供了多种高可用性方案,主要包括以下几种方式: 主从复制(Replication) 主从复制是最基本的高可用性方案,通过将数据从一个主节点复制到多个从节点来实现数据的冗余和读写分离。主节点负责所…...
$clog2(1)=0
项目场景: 写ip 时, 使用参数化的方式实现2w1r 时,出现计算读返回index 时,减下溢! 问题描述 verilog中会使用parameter 参数化,例如使用dpth 和$clog2(dpth)addr 。 常见的写法没有什么问题。 module …...
 
开发学习日记1
用这个系列博客记录下学习开发的一些小收获 git的使用: 说来惭愧,学到了大二,git的使用还是一团糟,记录一下如何使用git进行团队合作开发 当要加入其他人的项目时首先你要创建自己的分支(克隆一下其他分支ÿ…...
 
孙宇晨领航波场TRON:引领数字资产迈向崭新纪元
 在风起云涌的数字资产领域,孙宇晨这个名字始终与创新、突破和引领紧密相连。作为波场TRON的创始人,他不仅是一位远见卓识的领导者,更是推动数字资产迈向新纪元的坚实力量。 自波场TRON诞生以来,孙宇晨便以其敏锐的洞察力…...
python运维(twenty-four day)
一、python基础 1、环境python2、python3 [rootpython ~]# yum list installed | grep python #检查是否有python包 [rootpython ~]# yum list installed | grep epel #检查是否有epel包 [rootpython ~]# yum -y install epel-release [rootpython ~]# yum -y instal…...
Eureka原理实践
1. 简介 1.1. 概述 Eureka是Netflix开源的一个服务注册与发现框架,它在微服务架构中扮演着至关重要的角色。 Eureka由两个核心组件组成: Eureka Server(服务注册中心):负责存储、管理和提供服务实例信息,如服务名、IP地址、端口号等。Eureka Server通常采用集群部署以保…...
Ant-Design-Vue快速上手指南+排坑
1. 简介 1.1. 概述 Ant-Design-Vue是由阿里巴巴开源的一个基于Vue.js框架的企业级UI设计语言。它旨在帮助开发者构建设计优雅、体验流畅的企业级应用。Ant-Design-Vue提供了一系列高质量的Vue组件,包括表单、表格、布局、导航、图标等,可以帮助开发者快速搭建应用程序界面。…...
 
mysql5.7安装
1.创建一个software文件 2.先下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 3安装源包 rpm -ivh mysql-community-release-el7-5.noarch.rpm 可能会报错 改成命令 rpm -ivh mysql-community-release-el7-5.noarch.rpm --nodeps…...
 
UE开发中的设计模式(三) —— 对象池模式
在FPS游戏中,射击会生成子弹,在命中敌人后子弹会被销毁,那么会导致子弹对象频繁地创建和销毁,会造成运行效率降低且会产生内存碎片问题,而对象池模式可以很好地解决这个问题。 文章目录 问题提出概述问题解决总结 问题…...
Mocha测试框架:JavaScript自动化测试的瑞士军刀
在JavaScript开发中,自动化测试是确保代码质量和可靠性的关键环节。Mocha是一个广泛使用的JavaScript测试框架,它支持多种断言库,允许开发者编写简洁、灵活的测试用例。Mocha特别适用于Node.js环境,但也可以在浏览器中运行。本文将…...
flask实现Streaming内容传输
当传输大量内存,以至于超出内存大小,一般http服务器会报500错误,这时可以使用Streaming流的方式来传输内容,类似ChatGPT和视频流那样的输出方式,flask里要用到生成器和直接响应。 from flask import stream_with_cont…...
 
seata的使用(SpringBoot项目整合seata)
文章目录 1、解压 seata-server-1.7.1.zip2、启动 双击 seata-server.bat3、启动 seata 控制台用户界面4、所有分布式事务相关数据库要有undo-log5、项目引入seata依赖6、项目添加seata配置7、代码实现: 1、解压 seata-server-1.7.1.zip 2、启动 双击 seata-server.…...
 
docker容器和宿主机网络不通
防火墙未开启,检查网络配置无异常 解决: [rootlocalhost ~]# vim /etc/sysctl.confnet.bridge.beidge-nf-call-iptables 1 net.bridge.beidge-nf-call-ip6tables 1[rootlocalhost ~]# sysctl -p [rootlocalhost ~]# systemctl restart docker 如果网…...
编程学习之旅:高效记录与整理笔记的艺术
引言:知识的海洋与导航的灯塔 在编程的浩瀚星空中,每一位学习者都像是勇敢的航海家,驾驶着知识的帆船,在无尽的信息海洋中探索未知的领域。然而,这片海洋既充满了机遇,也潜藏着挑战。信息的过载、知识的碎…...
 
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
 
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
 
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了  先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
 
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
 
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
 
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
