设计院门户网站建设方案/seo公司的选上海百首网络
SSH远程连接协议
SSH远程管理
定义
-
SSH(Secure Shell )是一种安全通道协议,主要用来实现字符界面的远程的登录、远程复制等功能。
-
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
优点
-
安全性:数据传输是加密的,可以防止信息泄露
-
身份验证:防止未经授权的用户访问远程系统
-
远程管理:可通过SSH协议登录远程服务器并执行命令,无需直接物理访问设备
-
端口转发:SSH支持端口转发功能,可以安全地传输其它协议和应用程序
-
传输速度:数据传输是经过压缩的,可以提高传输速度
ssh服务的最佳设置
-
建议使用非默认端口 22
-
禁止使用protocol version 1
-
限制可登录用户 白名单
-
设定空闲会话超时时长
-
利用防火墙设置ssh访问策略
-
仅监听特定的IP地址 公网 内网
-
基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs
-
使用基于密钥的认证
-
禁止使用空密码
-
禁止root用户直接登录
-
限制ssh的访问频度和并发在线数
-
经常分析日志 分离
客户端与服务器所使用的软件
-
客户端软件
-
Putty、Xshell、CRT、MobaXterm
-
-
服务器软件
-
OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
-
CentOS 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。
-
SSH服务开启、端口号和配置文件路径
-
开启SSH服务
systemctl start sshd
-
SSH服务的默认端口号:22
-
SSH服务的配置文件路径
-
服务器端:
/etc/ssh/sshd_config #针对服务端的配置文件
-
客户端
/etc/ssh/ssh_config #针对客户端的配置文件
-
SSH程序名和主程序进程
sshd #程序名 /usr/sbin/sshd #服务端主进程
加密方式
-
对称加密
-
概念
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用
-
常用算法
DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等
-
特点
-
加密方和解密方使用同一个密钥
-
加密解密的速度比较快,适合数据比较长时的使用;
-
密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;
-
-
优点
-
算法公开
-
计算量小
-
加密速度快
-
加密效率高
-
-
缺点
-
在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥
-
其次如果一方的秘钥被泄露,那么加密信息也就不安全了
-
每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担
-
-
非对称加密
-
概念
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
-
常用算法
-
RSA(RSA algorithm):目前使用最广泛的算法
-
DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快
-
ECC(Elliptic curve cryptography,椭圆曲线加密算法)
-
ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障
-
-
原理
-
客户端向服务端发起连接请求
-
服务端收到请求后,将会话id和服务端的公钥交给客户端
-
客户端接收后,将会话id和客户端的公钥进行异或运算得到回复信息Res(Res=会话id^客户端公钥)
-
客户端再将Res用服务端的公钥加密,得到密文U(U=Res+服务端的公钥id),并将密文U交给服务端
-
服务端用服务端私钥将密文U解密,得到回复信息Res
-
服务端将Res和会话id进行异或运算,得到客户端的公钥
OpenSSH服务端配置文件格式
sshd_config配置文件的常用选项
[root@localhost ~]# vim /etc/ssh/sshd_config #Port 22 #端口号为22 #AddressFamily any #ListenAddress 0.0.0.0 #监听地址为任意网段,也可以指定OpenSSH服务器的具体IP #LoginGraceTime 2m #登录验证时间为2分钟 #PermitRootLogin yes #允许root用户登录 #StrictModes yes #检查.ssh/文件的所有者,权限等 #MaxAuthTries 6 #最大重试次数为6 #MaxSessions 10 #同一个连接最大会话为10个 #PubkeyAuthentication yes #基于key验证 UseDNS yes #提高速度可改为no 内网改为no 禁用反向解析
黑名单和白名单限制配置
Allowusers…… #仅允许某某用户登陆(白名单) Denyusers …… #禁止某些用户登录,用法于AllowUsers 类似(黑名单,注意不要同时使用)
使用SSH程序
登录方式
准备工作
#服务端准备工作 [root@Root2 ~]# systemctl disable firewalld [root@Root2 ~]# setenforce 0 #客户端准备工作 [root@Root1 ~]# systemctl disable firewalld [root@Root1 ~]# setenforce 0 # 一定要关闭防火墙和降低限制,否则ssh服务无法重启!
默认端口登录远程主机
ssh 远程主机用户名@远程主机名或IP地址 -p 端口号 -p #指定登录端口号(当服务端的端口号为非默认22时,需要使用-P来指定自定义的端口号)
[root@localhost ~]# ssh 192.168.20.90 #输入远程主机IP地址 The authenticity of host '192.168.20.90 (192.168.20.90)' can't be established. ECDSA key fingerprint is SHA256:xI7IIfZIDyIu4JSxmY/+NIgNPdMoDdRCjOuzlJ3L9rk. ECDSA key fingerprint is MD5:c3:14:88:de:b3:14:01:f3:ad:90:4a:80:0f:02:fc:d9. Are you sure you want to continue connecting (yes/no)? yes #确认是否连接 Warning: Permanently added '192.168.20.90' (ECDSA) to the list of known hosts. root@192.168.20.90's password: #输入远程主机登录密码 Last login: Mon Apr 29 09:21:28 2024 from 192.168.20.90
非默认端口登录远程主机
生产环境中作为安全加固设置必须配置
服务端 [root@Root2 ~]# vim /etc/ssh/sshd_config Port 224 #ssh协议端口号更改为224 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: 客户端 [root@Root1 ~]# vim /etc/ssh/sshd_config Port 224 #ssh协议端口号更改为224,与服务端匹配 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: [root@Root1 ~]# ssh 192.168.20.90 -p 224 #指定224端口号远程连接root2服务端 The authenticity of host '[192.168.20.90]:224 ([192.168.20.90]:224)' can't be established. ECDSA key fingerprint is SHA256:xI7IIfZIDyIu4JSxmY/+NIgNPdMoDdRCjOuzlJ3L9rk. ECDSA key fingerprint is MD5:c3:14:88:de:b3:14:01:f3:ad:90:4a:80:0f:02:fc:d9. Are you sure you want to continue connecting (yes/no)? yes #手动确认是否连接服务端 Warning: Permanently added '[192.168.20.90]:224' (ECDSA) to the list of known hosts. root@192.168.20.90's password: #输入服务端登录密码 Last login: Mon Apr 29 15:56:48 2024 from 192.168.20.90 [root@Root2 ~]# #远程登录root2服务端成功
免密码远程登录主机
-
目的:使主机与主机之间远程登录时不再需要输入登录密码,增加操作的便利度
这里只是免密码登录而不是密钥登录,依旧保证密钥传输的安全性
-
未设置免密码登录时的状态
[root@Root1 ~]# ssh 192.168.20.90 -p 224 root@192.168.20.90's password: #这里依旧需要输入服务端的登录密码
-
扩展
-
-t :可以选择密钥的算法
-
[root@Root1 .ssh]# ssh-keygen --help unknown option -- - usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1][-N new_passphrase] [-C comment] [-f output_keyfile] #举例: ssh-keygen -t dsa/ecdsa/rsa/rsa1 #如果不选择-t,就默认选择rsa算法
-
-
操作步骤
-
root1为客户端
-
root2为服务端
-
-
在客户端生成密钥文件
[root@Root1 ~]# ssh-keygen #免密码交互设置命令 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #第一次交互:指定密钥保存路径,可自定义,这里直接回车选择默认路径 Enter passphrase (empty for no passphrase): #第二次交互:提示密钥文件密码为空(未设置),询问是否设置密钥文件的密码,如果不 需要设置直接回车进入下一步 Enter same passphrase again: #第三次交互:再次确认是否不设置密钥文件密码,回车确认不需要,完成生成密钥文件 Your identification has been saved in /root/.ssh/id_rsa. #私钥文件路径 Your public key has been saved in /root/.ssh/id_rsa.pub. #公钥文件路径 The key fingerprint is: SHA256:GUULHPimIOZxS5apdT6hjqmE2yTm6QDOxOZ5ax5FQzc root@Root1 The key's randomart image is: +---[RSA 2048]----+ | . Eooo | | . o oo . | | = .. . | |. + X + oo | |.* O B +S | |O + + + | |+B.* . | |===.+ | |+=+o | +----[SHA256]-----+ [root@Root1 ~]# cd /root/.ssh [root@Root1 .ssh]# ls id_rsa #私钥文件 id_rsa.pub #公钥文件
-
将客户端的公钥远程复制到服务端
-
复制命令
ssh-copy-id -i 公钥文件 [用户名]@IP地址 #将密钥文件传过去 #下次就可以免密登录 #以root用户登录时 可省略 #-i为传输公钥文件的选项
-
传输过程
[root@Root1 .ssh]# ssh-copy-id -i id_rsa.pub 192.168.20.90 -p 224 #将主机root1的公钥文件远程传输给root2服务端,这里也可以-p,因为端口被自定义为224了,如果是默认22,就不需要-p /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub" The authenticity of host '[192.168.20.90]:224 ([192.168.20.90]:224)' can't be established. ECDSA key fingerprint is SHA256:xI7IIfZIDyIu4JSxmY/+NIgNPdMoDdRCjOuzlJ3L9rk. ECDSA key fingerprint is MD5:c3:14:88:de:b3:14:01:f3:ad:90:4a:80:0f:02:fc:d9. Are you sure you want to continue connecting (yes/no)? yes #提示是否建立连接 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.20.90's password: #输入服务端登录密码 Number of key(s) added: 1 #提示信息表示传输成功 Now try logging into the machine, with: "ssh -p '224' '192.168.20.90'" and check to make sure that only the key(s) you wanted were added.
-
验证
#公钥传输后的结果 [root@Root1 .ssh]# ssh 192.168.20.90 -p 224 Last login: Mon Apr 29 16:05:36 2024 from 192.168.20.91 #公钥传输前的结果 [root@Root1 ~]# ssh 192.168.20.92 -p 224 root@192.168.20.92's password: #作为对比,传输公钥后不再需要输入登录密码已经进入root2主机了,说明配置成功了
SSH远程控制服务端
命令
ssh 目标设备的IP地址 命令 #远程控制目标主机使用命令 并将命令执行结果返回本机 #主机root2的IP地址为192.168.20.92 [root@Root1 .ssh]# ssh 192.168.20.92 -p 224 ls #查看主机B家目录下有哪些目录或文件 anaconda-ks.cfg core.1891 initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@Root1 .ssh]# #这里并没有切换到root2,说明已经通过客户端root1远程控制服务端root2
相关文章:

linux之ssh
SSH远程连接协议 SSH远程管理 定义 SSH(Secure Shell )是一种安全通道协议,主要用来实现字符界面的远程的登录、远程复制等功能。 SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具…...

excel如何将多列数据转换为一列?
这个数据整理借用数据透视表也可以做到: 1.先将数据源的表头补齐,“姓名” 2.点击插入选项卡,数据透视表,在弹出对话框中,数据透视位置选择 现有工作表,(实际使用时新建也没有问题)…...

【Java 刷题记录】前缀和
前缀和 25. 一维前缀和 示例1: 输入: 3 2 1 2 4 1 2 2 3输出: 3 6import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(S…...

NVIDIA: RULER新测量方法让大模型现形
1 引言 最近在人工智能系统工程和语言模型设计方面的进展已经实现了语言模型上下文长度的高效扩展。以前的工作通常采用合成任务,如密钥检索和大海捞针来评估长上下文语言模型(LMs)。然而,这些评估在不同工作中使用不一致,仅揭示了检索能力,无法衡量其他形式的长上下文理解。 …...

2024数学-微积分和线性代数/本科研究生专业考试/考研/论文/重点公式考点汇总/最难公式投票
## 整体公式汇总列表 http://www.deepnlp.org/equation/category/math #### 微积分 ## 几何级数http://www.deepnlp.org/equation/arithmetic-and-geometric-progressions ## 级数收敛http://www.deepnlp.org/equation/convergence-of-series ## 二项式展开 http://www.dee…...

代码随想录训练营Day33(贪心算法):Leetcode1005、134、135(难得有一天能完全独立做出题目)
Leetcode1005: 题目描述: 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数…...

Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)
Flutter笔记 Widgets Easier组件库(12)使用消息吐丝(Notify Toasts) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 29114848416…...

从《春色寄情人》学习如何面对死亡
经典台词,很震撼又很实用,记录一下。 ❤️01 有的时候好人不长命百岁,是因为老天爷觉得他们太累,让他们提前休息了! ❤️02 跟我们亲近的人离世,有可能是老天给我们发的信号,提醒我们ÿ…...

使用moveit控制机械臂
在这篇博客中,我们将详细探讨如何利用Python和Robot Operating System(ROS)配合MoveIt! 控制机械臂执行精确的抓取任务。机械臂技术在工业自动化、医疗服务以及研究领域扮演着越来越关键的角色。本文将通过介绍安装必要的软件、编写控制脚本以…...

Mysql报错红温集锦(一)(ipynb配置、pymysql登录、密码带@、to_sql如何加速、触发器SIGNAL阻止插入数据)
一、jupyter notebook无法使用%sql来添加sql代码 可能原因: 1、没装jupyter和notebook库、没装ipython-sql库 pip install jupyter notebook ipython-sql 另外如果是vscode的话还需要安装一些相关的插件 2、没load_ext %load_ext sql 3、没正确的登录到mysql…...

ASP.NET Core SignalR 配置与集成测试究极指南
这篇文章也可以在我的博客中查看 前言 哥们最近都在埋头苦干,沉默是金,有一段时间没更新博客了。然而今儿SignalR集成测试实属是给我整破防了。虽说SignalR是.NET官方维护的实时通信库,已经开发了有十几年,甚至已经编入至了core…...

JENKINS 安装,学习运维从这里开始
Download and deployJenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their softwarehttps://www.jenkins.io/download/首先点击上面。下载Jenkins 为了学习,从windows开始&#x…...

大语言模型从Scaling Laws到MoE
1、摩尔定律和伸缩法则 摩尔定律(Moores law)是由英特尔(Intel)创始人之一戈登摩尔提出的。其内容为:集成电路上可容纳的晶体管数目,约每隔两年便会增加一倍;而经常被引用的“18个月”…...

四级英语翻译随堂笔记
降维表达:中译英,英译英 没有强调主语,没有说明主语:用被动 但如果实在不行,再增添主语 不会就不翻译,不要乱翻译 以xxx为背景:against the backdrop of the xxx eg:against the backdrop of…...

Nacos支持的配置格式及其在微服务架构中的应用
今天,我想和大家探讨一下Nacos这一重要的微服务组件,特别是它所支持的配置格式以及这些格式在微服务架构中的应用。 一、Nacos简介 Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它提供了服务发现、配置管理…...

2024年华为OD机试真题-小明找位置-(C++)-OD统一考试(C卷D卷)
题目描述: 小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。 算法复杂度要求不高于nLog(n);学号为整数类型,队列规模<=10000; 输入描述: 1、第一行:输入已排成队列的小朋友的学号(正整数),以”,”隔开; …...

机器人系统ros2内部接口介绍
内部 ROS 接口是公共 C API ,供创建客户端库或添加新的底层中间件的开发人员使用,但不适合典型 ROS 用户使用。 ROS客户端库提供大多数 ROS 用户熟悉的面向用户的API,并且可能采用多种编程语言。 内部API架构概述 内部接口主要有两个&#x…...

跟随Facebook的足迹:社交媒体背后的探索之旅
在当今数字化时代,社交媒体已经成为了人们日常生活中不可或缺的一部分。而在这庞大的社交媒体网络中,Facebook作为其中的巨头,一直在引领着潮流。从创立之初的一个大学社交网络到如今的全球性平台,Facebook的发展历程承载了无数故…...

面试题分享之Java并发篇
注意:文章若有错误的地方,欢迎评论区里面指正 🍭 系列文章目录 面试题分享之Java集合篇(三) 面试题分享之Java集合篇(二) 面试题分享之Java基础篇(三) 前言 今天给小…...

bpmn-js 多实例配置MultiInstanceLoopCharacteristics实现或签会签
使用bpmn-js流程图开发过程中会遇到会签和或签的问题,这个时候我们就需要使用多实例配置来实现BPMN 2.0的配置实现了,多实例任务,是从流程编辑概念之初也就是Activiti时期就存在的一个方式。所谓的多实例任务也就是字面意思,一个任务由多个人完成,常见于我们的审批流程的或…...

【gpedit.msc】组策略编辑器的安装,针对windows家庭版,没有此功能
创建一个记事本文件然后放入以下内容 echo offpushd "%~dp0"dir /b %systemroot%\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >gp.txtdir /b %systemroot%\servicing\Packages\Microsoft-Windows-GroupPolicy-…...

带EXCEL附件邮件发送相关代码
1.查看生成的邮件 2.1 非面向对象的方式(demo直接copy即可) REPORT Z12. DATA: IT_DOCUMENT_DATA TYPE SODOCCHGI1,IT_CONTENT_TEXT TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,IT_PACKING_LIST TYPE TABLE OF SOPCKLSTI1 WITH HEADER LIN…...

【算法作业】均分卡牌,购买股票
问题描述 John 有两个孩子,在 John病逝后,留下了一组价值不一定相同的魔卡, 现在要求你设计一种策略,帮John的经管人将John的这些遗产分给他的两个孩子,使得他们获得的遗产差异最小(每张魔卡不能分拆&#…...

python作业
题目 分析 步骤: 判断先画空格还是数字 当有n层时,第i层有多少个空格第i层的起始数字是几,结尾是几,即数字取值范围当有n层时,第i层有多少个数字 代码 模式A n int(input("请输入行数:")) for i in range(…...

【Linux的文件篇章 - 管道文件】
Linux学习笔记---013 Linux的管道文件1、进程间通信1.1、进程为什么要通信?1.2、进程如何通信?1.3、进程通信的方式? 2、匿名管道2.1、理解一种现象2.2、基本概念和管道原理 3、管道的使用3.1、代码样例3.2、如何使用管道通信呢?3…...

C# 局部静态函数,封闭方法中的最佳选择
C# 局部静态函数,封闭方法中的最佳选择 简介特性 应用场景辅助计算递归与尾递归优化筛选与过滤操作查找与映射操作 生命周期静态局部函数 vs 普通局部函数性能封装性可读性 简介 C# 局部静态函数(Local Static Functions)是一种函数作用域内…...

【MySQL】MySQL 8.4.0 长期支持版(LTS)安装
就在2024年 “5.1” 节前,MySQL官方发布了8.4.0长期支持版(LTS - Long Term Support)。根据官方提供的文档,在本地虚拟机进行安装测试。 安装、配置和启动过程记录如下: 第一步,上传到安装包(my…...

nest中的ORM
在 Nest.js 中执行 SQL 查询通常涉及使用 TypeORM 或 Sequelize 这样的 ORM(对象-关系映射)库。这些库使得在 Nest.js 应用程序中连接和操作 SQL 数据库变得更加简单和直观。 以下是一个使用 TypeORM 在 Nest.js 中执行 SQL 查询的示例代码:…...

TCP(Transmission Control Protocol,传输控制协议)如何保证数据的完整性?
TCP(Transmission Control Protocol,传输控制协议)通过一系列机制来保证数据传输的可靠性和无错性,这些机制主要包括: 校验和:TCP报文段包含一个校验和字段,用于检测数据在传输过程中是否出错。…...

Numpy库介绍
NumPy(Numerical Python的缩写)是Python中用于科学计算的一个强大的库。它提供了高性能的多维数组对象(即ndarray)、用于处理这些数组的工具以及用于数学函数操作的函数。让我为你介绍一下它的一些主要功能: 1. 多维数…...