摆烂式学习ssh
摆烂式学习ssh
- ssh工作原理
- ssh基本使用
- sshd配置文件
- 密钥登录
- 1.客户端
- 2.服务器
- 3.注意事项
- 4.使用密钥登录测试
- ssh高级使用技巧
- 1.在非正规端口启动
- 2.rsync 命令
- 3.透过 ssh 通道加密原本无加密的服务
- 4.以ssh信道配合x server 传递图形接口
- 5.ssh配合virtualbox虚拟机使用技巧
ssh工作原理
后续补充
ssh基本使用
后续补充
sshd配置文件
ssh服务器配置文件是/etc/ssh/sshd_config
,大多数配置选项默认配置即可.
StrictModes yes
#这个选项非常重要,使用密钥登录时,会检查家目录和配置文件的权限,参考后面密钥登录说明PasswordAuthentication yes
#这个选项选择是否可以使用用户名和密码登录
密钥登录
1.客户端
在客户端生成密钥
#1.查看客户端可以生成哪些类型密钥ssh-keygen --help[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
#2.查看服务器支持哪些类型密钥
#sh_host_*为服务器支持的密钥类型
tree /etc/ssh/
/etc/ssh/
├── moduli
├── ssh_config
├── sshd_config
├── ssh_host_ecdsa_key
├── ssh_host_ecdsa_key.pub
├── ssh_host_ed25519_key
├── ssh_host_ed25519_key.pub
├── ssh_host_rsa_key
├── ssh_host_rsa_key.pub
└── ssh_import_id#3.生成密钥
#选择客户端和服务器端都支持的密钥类型
#-t: 指定密钥类型
ssh-keygen -t ed25519Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\pc/.ssh/id_ed25519): #建立密钥文件,直接回车
Created directory 'C:\\Users\\pc/.ssh'. #目录不存在,自动建立
Enter passphrase (empty for no passphrase): #对密钥进行加密,直接回车,不加密
Enter same passphrase again: #回车
The key fingerprint is:
SHA256:CZXwmJisbe+Tg7iyllsNF49RGin+NdFdyVDELiKkzTM pc@DESKTOP-1RI3V9O
The key's randomart image is:
+--[ED25519 256]--+
| .ooo...B+. |
| o ++B.. . + |
| . =+O o . |
| + .=E o . . |
| ..+o..S . . |
| .+o |
| .o o.. |
|.oo ..+ |
|o+o. .o |
+----[SHA256]-----+
查看生成的密钥文件
cd .\.ssh\
PS C:\Users\pc\.ssh> ls目录: C:\Users\pc\.sshMode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2023/12/29 19:30 411 id_ed25519 #私钥
-a---- 2023/12/29 19:30 101 id_ed25519.pub #公钥
2.服务器
到需要登录的账号的家目录下.
#1.建立目录~/.ssh
mkdir ~/.ssh#2.把客户端公钥复制到服务器客户家目录.ssh目录下
#windows11下的命令,linux相似
scp .\id_ed25519.pub lei@u18:\home\lei\.ssh#3.把公钥存储到authorized_keys文件中
cd /home/lei/.ssh
cat id_ed25519.pub >> authorized_keys#4.~目录其他用户权限不能有写权限即可
chmod 775 -R ~
#只要其他用户的权限没有写权限就可以
chmod 700 -R ~
3.注意事项
服务器上要登录的目录其他用户权限一定不能是写权限,否则密钥登录失败!
还有另外一种解决办法,就是修改配置文件 vim /etc/ssh/sshd_config
StrictModes no
这一点很重要.
网络上很少有说明这一点的地方.查看man sshd_config
可以明白这一点.
StrictModesSpecifies whether sshd(8) should check file modes and ownership of the user's files and home directory before accepting login. This is normally desirable because novicessometimes accidentally leave their directory or files world-writable. The default is yes. Note that this does not apply to ChrootDirectory, whose permissions and owner‐ship are checked unconditionally.
4.使用密钥登录测试
使用工具MobaXterm,测试可以使用密钥登录.
使用powershell或cmd测试
ssh lei@u18
#不需要密码直接登录
ssh高级使用技巧
1.在非正规端口启动
#vim /etc/ssh/sshd_config
#可以有多个端口一起使用
Port mmm
Port nnn#使用
ssh -p portnumber username@hostname
2.rsync 命令
会产生比较, 只copy更新或不存在的文件和目录
例子:
#1.本地使用
sudo rsync -av /etc/ testdir/#2.将server上的/etc复制到本地/tmp中
rsync -av -e ssh user@server:/etc /tmp
rsync 语法
rsync [-avrlptgoD][-e ssh][user@host:/dir][/local/path]
#-v: 观察模式,可以列出更多的信息,包括镜像时的档案名称等;
#-q: 与 -v 相反, 安静模式, 略过正常信息, 仅显示错误讯息;
#-r: 递归复制
#-u: 仅更新(update),若目标档案较新,则保留新档案不会覆盖;
#-l: 复制链接文件的属性,尔非链接的目标源文件内容;
#-p: 复制时,连同属性(permission)也保存不变;
#-g: 保存源文件的拥有群组;
#-o: 保存源文件的拥有人;
#-D: 保存源文件的装置属性(device)
#-t: 保存源文件的时间参数;
#-l: 忽略更新时间(mtime)的属性,档案比对上会比较快速;
#-z: 在数据传输时,加上压缩的参数;
#-e: 使用的通道协议,例如使用ssh通道, 则 -e ssh
#-a: 相当于 -rlptgoD, 所以这个-a是最常用的参数
3.透过 ssh 通道加密原本无加密的服务
后续补充
4.以ssh信道配合x server 传递图形接口
后续补充
5.ssh配合virtualbox虚拟机使用技巧
把四个虚拟网卡都打开.例如下图,网卡1用于连接嵌入式板卡用于开发,网卡2连接无线路由器用于上网,网卡3用于仅主机网络用于在图书馆等地方本地电脑连接ubuntu主机学习或工作,网卡4设置成NAT方式用于其他应用.
为了登录方便使用以下方式登录
- 使用hostname登录,这样就不要记住IP地址了,例如 ssh username@hostname
- 尽量可能的情况下设置成DHCP方式,换个环境就不需要设置IP地址了.
- 配置成密钥登录方式,这样登录时就不需要输入密码了,特别是使用vscode远程开发linux项目时,vscode可以省去许多中间输入密码的提示.
以上设置保证不管把电脑拿到何处,都不需要重新配置网络,同时调试嵌入式板卡时,还能同时上网安装软件.
相关文章:
摆烂式学习ssh
摆烂式学习ssh ssh工作原理ssh基本使用sshd配置文件密钥登录1.客户端2.服务器3.注意事项4.使用密钥登录测试 ssh高级使用技巧1.在非正规端口启动2.rsync 命令3.透过 ssh 通道加密原本无加密的服务4.以ssh信道配合x server 传递图形接口5.ssh配合virtualbox虚拟机使用技巧 ssh工…...
用 Python 抓取 bilibili 弹幕并分析!
01 实现思路 首先,利用哔哩哔哩的弹幕接口,把数据保存到本地。接着,对数据进行分词。最后,做了评论的可视化。 02 弹幕数据 平常我们在看视频时,弹幕是出现在视频上的。实际上在网页中,弹幕是被隐藏在源代码…...
目标检测YOLO实战应用案例100讲-基于红外图像处理的无人机光伏组件故障检测(续)
目录 3.2 自适应温度阈值故障检测算法设计 3.3 基于拟合灰度曲线的故障检测方案设计...
go mod 命令详解
文章目录 1.关于模块2.关于 go mod3.格式4.示例参考文献 1.关于模块 模块(Modules)是 Go 1.11 版本引入的一依赖管理机制。 一个模块是 Go packages 的集合,定义在项目根目录下的 go.mod 文件。go.mod 文件定义了模块的路径,这也…...
花了一小时,拿python手搓了一个考研背单词软件
听说没有好用的电脑端背单词软件?只好麻烦一下,花了一小时,拿python手搓了一个考研背单词软件。 代码已经开源在我的github上,欢迎大家STAR! 其中,数据是存放在sqlite中,形近词跳转是根据jaro …...
一篇文章学会Vim
一篇文章学会Vim 声明:以下内容均为我个人的理解,如果发现错误或者疑问可以联系我共同探讨 简介 Vim是一个高度可定制的终端文本编辑器,它可以很方便的创建和修改任何类型的文本。作为vi的升级版,有许多新的特性(以下列出的特性…...
面试算法91:粉刷房子
题目 一排n幢房子要粉刷成红色、绿色和蓝色,不同房子被粉刷成不同颜色的成本不同。用一个n3的数组表示n幢房子分别用3种颜色粉刷的成本。要求任意相邻的两幢房子的颜色都不一样,请计算粉刷这n幢房子的最少成本。例如,粉刷3幢房子的成本分别为…...
js逆向第11例:猿人学第4题雪碧图、样式干扰
任务4:采集这5页的全部数字,计算加和并提交结果 打开控制台查看请求地址https://match.yuanrenxue.cn/api/match/4,返回的是一段html网页代码 复制出来格式化后,查看具体内容如下: <td><img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAA…...
OpenEular23.09(欧拉)操作系统为企业搭建独立的K8S集群环境,详细流程+截图
一.环境; win10,vmware16 pro,openeular23.09,linux内核 6.4.0-10.1.0.20.oe2309.x86_64, docker-engine 2:18.09.0-328,kubernetes 1.25.3,containerd 1.6.22,calico v3.25 集群…...
学生成绩管理系统半成品
C语言的老师在给我们讲指针的时候,讲的并不深入,她用了一个学生成绩管理系统来引入指针这个东西并给我们讲解,但我觉得她的管理系统功能有一些不足,并且不是很美观,所以说心血来潮,自己也动手写了一个学生成…...
国家信息安全水平等级考试NISP二级题目卷⑤(包含答案)
国家信息安全水平等级考试NISP二级题目卷(五) 国家信息安全水平等级考试NISP二级题目卷(五)需要报考咨询可以私信博主! 前言: 国家信息安全水平考试(NISP)二级,被称为校园版”CISP”,由中国信息…...
4.快速实现增删改查,模糊查询功能
打开springboot项目,在com.example下建包common,在common下新建Result.java 4.1封装统一的返回数据结构 1.在Result.java中编写如下代码: private static final String *SUCCESS*"0"; private static final String *ERROR*"-1"; p…...
【Redux】自己动手实现redux和react-redux
1. React提供context的作用 在class组件的世界里,如果后代组件共享某些状态,比如主题色、语言键,则需要将这些状态提升到根组件,以props的方式从根组件向后代组件一层一层传递,这样则需要在每层写props.someData&#…...
代码随想录算法训练营day6|242.有效的字母异位词、349.两个数组的交集、202.快乐数
哈希表理论基础 建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时…...
2024.1.4每日一题
LeetCode每日一题 2397.被列覆盖的最多行数 2397. 被列覆盖的最多行数 - 力扣(LeetCode) 题目描述 给你一个下标从 0 开始、大小为 m x n 的二进制矩阵 matrix ;另给你一个整数 numSelect,表示你必须从 matrix 中选择的 不同 …...
C++协程和线程的区别?详细介绍一下C++协程
C协程和线程的区别 线程是操作系统级别的资源,由操作系统负责调度和切换,每个线程都有自己的堆栈和执行上下文。线程之间的切换需要保存和恢复线程的执行上下文,这个过程有一定的开销。协程是用户态的轻量级线程,协程的调度完全由…...
数字信号处理期末复习——计算大题(一)
个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…...
matlab数值计算函数--ode45
当难以求得微分方程的解析解时,可以求其数值解,Matlab中求微分方程数值解的函数有七个:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb。本文讲解ode45,其…...
Vue3地图选点组件
Vue3地图选点组件 <template><div style"width: 100%; height: 500px"><div class"search-container"><el-autocompletev-model"suggestionKeyWord"class"search-container__input"clearable:fetch-suggestion…...
JS之注册事件兼容性解决方案
本章介绍注册事件兼容性的解决方案 废话不多说,直接上代码: function addEventListener(element, eventName, fn) {//判断当前浏览器是否支持 addEventListener 方法if (element.addEventListener) {element.addEventListener(eventName, fn); // 第三个…...
C#中使用as关键字将对象转换为指定类型
目录 一、定义 二、示例 三、生成 使用as关键字可以将对象转换为指定类型,与is关键字不同,is关键字用于检查对象是否与给定类型兼容,如果兼容则返回true,如果不兼容则返回false。而as关键字会直接进行类型转换,如果…...
【Spring实战】21 Spring Data REST 常用功能详细介绍
文章目录 1. 资源导出(Resource Exporting)2. 查询方法(Query Methods)3. 分页和排序(Pagination and Sorting)4. 关联关系(Associations)5. 事件(Events)6. …...
05-微服务-RabbitMQ-概述
RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应&am…...
jmeter参数化的三种方式
1.用户定义变量 使用变量: ${变量名} 这个变量是全局变量,也就是在下面子节点中都可以使用; 使用场景:两个账号分别有不同的权限,A经办,B审核。等。。。 2.CSV数据文件设置 3.函数...
java基础之Java8新特性-Lambda
目录 什么是Lambda表达式 Lambda表达式规范 基本语法 参数列表 函数体 注意事项 如何定义函数接口 1.保证接口中只能有一个抽象方法 2.使用FunctionalInterface注解标记该接口为函数接口 使用Lambda调用无参函数 使用Lambda调用有参函数 使用Lambda的精简写法 使用…...
入门使用mybatis-plus
第一步:pom文件带入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency> 第二步:创建实体对象 TableName(&…...
ubuntu安装和配置ssh教程
一、前言 ssh服务类似于windows的远程桌面服务,可以实现对linux系统的远程管理,ssh默认端口为22端口。后面博主进行操作以ubuntu2020操作系统为例进行操作。 二、安装ssh服务 Ubuntu 2020 默认不安装 SSH 服务。它只安装了 SSH 客户端,可以用于连接到其他计算机上的 SSH 服…...
每天刷两道题——第六天
1.1字母异位词分组 给你一个字符串数组,将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词指的是由重新排列源单词的所有字母得到的一个新单词。 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,…...
时间序列平稳性相关检验方法
理解平稳性 一般来说,平稳时间序列是指随着时间的推移具有相当稳定的统计特性的时间序列,特别是在均值和方差方面。平稳性可能是一个比较模糊的概念,将序列排除为不平稳可能比说序列是平稳的更容易。通常不平稳序列有几个特征: …...
<leetcode修炼>双指针训练-移动零
题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 方法1: 快慢指针 快指针负责遍历数组中所有元素,慢指针负责记录不为0的…...
化妆品购物网站排名/成都有实力的seo团队
CodingGo技术社区自由的编程学习平台日志分析 日志分析在web系统中故障排查、性能分析方面有着非常重要的作用。该工具的侧重点不是通常的PV,UV等展示,而是在指定时间段内提供细粒度(最小分钟级别,即一分钟内的日志做抽象和汇总&a…...
网站建设规划大纲/提高工作效率的重要性
目前来说,win8没有本地数据库。使用sqlite作为win8的数据存取是一种比较实在的解决方案。 我在使用sqlite过程中,遇到过一些问题,现在做一个小结作为本次的开发笔记吧。 (1) sqlite在vs2012上的安装教程参考:sqlite for win8. sq…...
vue适合什么网站开发/自媒体平台注册下载
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。…...
wordpress新建全屏页面/怎么做好公司官网推广
变量、常量、命名规范 变量 Java是一种强类型语言,每个变量都必须声明其类型。只有声明变量后才能对变量去分配相应的存储空间。 Java变量是程序中最基本的存储单元,变量包括变量类型、变量名和作用域。变量类型可以是基本类型和引用类型。 局部变量和…...
网站建设企业模板/seo sem是指什么意思
一、在线防护的需求现在在网络安全方面存在着许多安全风险,并且呈现不断上升的趋势,这些不断增长的风险包含更多的复杂性和变化性。安全管理员需要一种途径来检测和阻止这些***,并且能够经常了解新的***行为,以便阻止这些***。图2…...
邹平建设局网站/上海关键词seo
软件开发是一个跨度很大的技术工作,在语言方面,有C,C,Java,Ruby等等等等,在环境方面,又分嵌入式,桌面系统,企业级,WEB,基础系统,或是科…...