第三章 远程连接服务器

目录

1、远程连接服务器简介

2、连接加密技术简介

第一阶段:TCP三次握手版本协商过阶段:

第二阶段:协商算法和确定对称秘钥阶段

3、用户登录ssh服务器

4.举例说明

例一:Linux互连

第一步:生成非对称秘钥(客户端生成秘钥)

第二步:将客户端生成的id_rsa.pub文件发送到服务端

例二:win作为客户端

第一步:客户端生成秘钥

第二步:上传公钥文件到服务端。

第三步:检查传输是否成功:


1、远程连接服务器简介

                 ssh secure shell 22

1)什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。

2)远程连接服务器的功能

分享主机的运算能力 3)远程连接服务器的类型(以登录的连接界面来分类)

  • 文字接口 明文传输:Telnet23)、RSH等,目前 非常少用 加密传输:SSH22)为主,已经取代明文传输
  • 图形接口:XDMCPVNCXRDP等。

4)文字接口连接服务器 SSHSecure Shell Protocol,安全的壳程序协议)它可以通过数据包加密技术将等待传输的数据包加 密后再传输到网络上。ssh协议本身提供两个服务器功能:一个是类似telnet的远程连接使用shell的服务器;另一个就是类似ftp服务的sftp-server,提供更安全的ftp服务。

2、连接加密技术简介

目前常见的网络数据包加密技术通常是通过非对称密钥系统来处理的。主要通过两把不一样的公钥与私钥来进行加密与解密的过程

公钥(public key):提供给远程主机进行数据加密的行为,所有人都可获得你的公钥来将数据加密。 私钥(private key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。私钥只有自己拥有。 SSH工作过程:在整个通讯过程中,为实现SSH的安全连接,服务端与客户端要经历如下五个阶段:

过程

说明

版本号协商阶段

SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本

密钥和算法协商阶 段

SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用 的算法

认证阶段

SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证

会话请求阶段

认证通过后,客户端向服务器端发送会话请求

交互会话阶段

会话请求通过后,服务器端和客户端进行信息的交互

第一阶段:TCP三次握手版本协商过阶段:

目前包括SSH1SSH2两个版本,双方通过版本协商确定使用的版本。

服务端默认已经开启ssh服务,打开了22号端口,等待客户端来连接

服务器向客户端发送第一个报文: 告诉了客户端使用了ssh版本以及软件信息

客户端收到报文之后,拿出服务器的ssh版本,看一下自己是否支持,如果支持使用该版本

第二阶段:协商算法和确定对称秘钥阶段

SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法:

对称加密:同一秘钥既可以进行加密也可以进行解密

        优势:使用一个秘钥它的加密效率高一些(快一些)

        缺陷:秘钥传输的安全性(在网络传输中不传输秘钥)

        应用: 传输数据(数据的双向传输)

非对称加密:产生一对秘钥:公钥:公钥加密 私钥:私钥只能进行解密(不会进行网络传输)

        缺陷:公钥的安全性 客户端去访问一个服务器(假设数据被我们的hacker拦截了,hacker发送了自己的公钥给客户端,客户端用 hacker的公钥对数据进行加密,然后hacker用自己的私钥进行解密。从而获取到用户传送的隐私(用户和密码)信息,进一步对服务器动机);                                    传送速度慢(效率低

        优势:安全性更高 

        应用: 单向的认证阶段(建立安全的连接保证后面对称加密的秘钥安全)

3、用户登录ssh服务器

第一步:关闭防火墙

[root@server ~]# systemctl stop firewalld    关闭防火墙(临时关闭,重启后任会启动)
[root@server ~]# systemctl disable firewalld        开机关闭防火墙(重启后不会自行启动)

第二步:查看ssh服务软件:

确认server端是否按照服务程序:[root@server ~]# rpm -qa |grep ssh

还可以通过进程查看:[root@server ~]# ps -aux |grep ssh

第三步:client如何发起远程链接请求

[root@server ~]# ssh root@server -p 22     (本地链接)

[C:\~]$ ssh root@192.168.17.128    (win远程链接)

ssh配置文件中的核心参数:

ssh服务程序的配置文件:

查看软件文件释放列表(大部分文件 ) [root@server ~]# rpm -ql (openssh-server)  (软件名)

进入主要配置文件:[root@server ~]# vim /etc/ssh/sshd_config


Include:(该文件包Include之后路径的文件)

Port 22 :表示该服务基于22号端口

注释特点:#号之后有空格代表:纯注释信息

                  #号之后没有空格直接根文字代表:该命令的一些相关参数,只不过暂为被启用

日志等级:

允许root用户远程链接:PermiltRootLogin yes

最大远程链接数:#MaxSessions 10

认证方式: 

默认公钥验证方式:#PubkeyAuthentication yes

 公钥文件的位置及路径:       AuthorizedKeysFile      .ssh/authorized_keys(用户家目录下的公钥文件)

 是否开启密码验证:#PasswordAuthentication yes

远程链接时使用DNS服务:

可以使用文件传输:文件传输使用的协议为sftp

注意:修改完配置文件之后还需要重新运行sshd程序

                                                [root@server ~]# systemctl restart  sshd 

此处发生报错:

可以通过命令systemctl status sshd 命令来查看报错

空白行之上为服务运行的状态以及进程信息,空白行之下为问题报错的具体时间以及报错信息。 

此时我们要关闭seLinux安全服务:[root@server ~]# setenforce 0
                                                                setenforc   对网络安全服务做出控制

第二种验证方式:公钥验证

客户端:

主机生成非对称秘钥

        公钥发送到服务器/root/.ssh/authorized_keys

服务端:

        等待客户端发送请求,在内部通过非对称验证

4.举例说明

例一:Linux互连

        服务器IP:192.168.17.128 24

        客户端IP:192.168.17.129 24

客户端:第一次链接时需要公验证,需要输入yes;

此时 默认还需要输入密码验证,有一定的安全问题

为减少安全问题的出现,我们可以进行以下操作:

第一步:生成非对称秘钥(客户端生成秘钥)

         [root@node1 ~]# ssh-keygen -t rsa                 

在文件路径/root/.ssh/下生成私钥文件id_rsa

id_rsa为非对称私钥                            id_rsa.pub为非对称验证的公钥

注意:文件known_hosts存放着以链接过的服务器公钥

第二步:将客户端生成的id_rsa.pub文件发送到服务端

[root@node1 ~]# ssh-copy-id  root@192.168.17.128

在服务端经行查看,传输是否成功

                                        [root@server ~]# ll /root/.ssh/

图中authorized_keys就是传输被文件
此时我们在进行远程链接时就实现了免密登录;

例二:win作为客户端

第一步:客户端生成秘钥

进如Xshell点击 <工具>    <新建用户密钥生成向导>

操作如图: 

等待,选择下一步

不需要输入密码,直接选择下一步

将生成公钥放置在桌面上,以便于公钥传输

查看生成私钥

第二步:上传公钥文件到服务端。

第三步:检查传输是否成功:

由于公钥文件只能叫authorized_keys因此我们需要修改文件名

        [root@node1 .ssh]# mv 'id_rsa_2048 (2).pub'  authorized_keys

此时我们在win(客户端上进行远程连接)

[C:\~]$ ssh root@192.168.17.129     

                输入命令后在弹框里直接选择如图所示私钥然后不输入密码直接登陆

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】权限

目录 1&#xff0c;切换用户 1&#xff0c;su 普通用户名 2&#xff0c;su - 普通用户名 2&#xff0c;权限的管理 1&#xff0c;文件访问者的分类&#xff08;人) 2&#xff0c;文件类型和访问权限&#xff08;事物属性&#xff09; 3&#xff0c;文件权限值的表示方法…

信息系统项目管理师教程 第四版【第8章-项目整合管理-思维导图】

信息系统项目管理师教程 第四版【第8章-项目整合管理-思维导图】 课本里章节里所有蓝色字体的思维导图

Vue组件自定义事件实现子组件给父组件传递数据

一、绑定自定义事件 &#xff08;一&#xff09;使用v-on或绑定事件 事件是绑定在组件身上的&#xff0c;当我们触发这个事件的时候&#xff0c;就会执行事件回调函数。 <组件标签 v-on:事件名"事件回调函数"/> // 或 <组件标签 事件名"事件回调函…

前端接口请求支持内容缓存和过期时间

前端接口请求支持内容缓存和过期时间 支持用户自定义缓存时间&#xff0c;在规则时间内读取缓存内容&#xff0c;超出时间后重新请求接口 首先封装一下 axios&#xff0c;这一步可做可不做。但是在实际开发场景中都会对 axios 做二次封装&#xff0c;我们在二次封装的 axios …

如何使用 nvm-windows 这个工具来管理你电脑上的Node.js版本

nvm-windows 是一个用于管理在 Windows 上安装的多个 Node.js 版本的工具。以下是安装和使用 nvm-windows 的步骤&#xff1a; 第1步&#xff1a;下载 nvm-windows 访问 nvm-windows 的 GitHub发布页面.下载最新版本的 nvm-setup.zip 文件。 第2步&#xff1a;安装 nvm-wind…

Postman的高级使用,傻瓜式学习【下】

目录 前言 1、全局变量、环境变量 1.1、概念&#xff1a; 1.2、如何设置全局变量、环境变量 1.3、获取全局变量、环境变量 1.4、案例1&#xff1a;手动设置变量&#xff0c;请求参数获取 1.5、案例2&#xff1a;代码设置变量&#xff0c;代码获取变量 2、Postman读取外部…

TypeScript深度剖析:TypeScript 中命名空间与模块的理解?区别?

一、模块 TypeScript 与 ECMAScript 2015 一样&#xff0c;任何包含顶级 import 或者 export 的文件都被当成一个模块 相反地&#xff0c;如果一个文件不带有顶级的import或者export声明&#xff0c;那么它的内容被视为全局可见的 例如我们在在一个 TypeScript 工程下建立一…

canvas:理解canvas / 基础使用 / Demo效果

一、理解Canvas Canvas是一个HTML5元素&#xff0c;用于在Web页面上绘制2D或3D图形。它允许使用JavaScript在网页上创建和操作图形。Canvas的主要功能是绘图&#xff0c;但也可以用来实现其他功能&#xff0c;如动画和交互式游戏。 使用Canvas&#xff0c;可以创建各种形状、…

Vue的快速入门

Vue的快速入门 下载并安装vue.js Vue是一个基于JavaScript实现的框架, 要使用它就需要从[Vue官网]((https://cn.vuejs.org/)下载 vue.js 文件 第一步&#xff1a;打开Vue2官网&#xff0c;点击下图所示的“起步” 第二步&#xff1a;继续点击下图所示的“安装” 第三步&…

深度学习(4)---生成式对抗网络(GAN)

文章目录 一、原理讲述1.1 概念讲解1.2 生成模型和判别模型 二、训练过程2.1 训练原理2.2 损失函数 三、应用 一、原理讲述 1.1 概念讲解 1. 生成式对抗网络&#xff08;Generative Adversarial Network&#xff0c;GAN&#xff09;是一种深度学习模型&#xff0c;是近年来复杂…

万字解析设计模式之原型模式与建造者模式

一、原型模式 1.1概述 原型模式是一种创建型设计模式&#xff0c;其目的是使用已有对象作为原型来创建新的对象。原型模式的核心是克隆&#xff0c;即通过复制已有对象来创建新对象&#xff0c;而不是通过创建新对象的过程中独立地分配和初始化所有需要的资源。这种方式可以节…

nrf52832 开发板入手笔记:J-Flash 蓝牙协议栈烧写

前言 nrf52832 想要开启 蓝牙功能&#xff0c;比如蓝牙主从机功能&#xff0c;需要额外烧写 蓝牙协议栈的固件&#xff1a;softdevice&#xff0c;换句话说&#xff0c;蓝牙协议栈等代码是不开放的&#xff0c;只提供一个 二进制文件。 也就是 nrf52832 Flash 与 RAM 要分区了…

[激光原理与应用-72]:PLC架构与工作原理

目录 一、PLC简介 1.1 概述 1.2 基本组成 1.3 常见的PLC品牌比较 二、PLC程序执行原理 2.1 PLC有操作系统吗&#xff1f; 2.2 PLC程序执行 2.3 PLC编程语言 2.4 PLC编程过程 三、PLC编程工具 3.1 编程工具 四、PLC与工控机协同 4.1 PLC需要配置工控机吗&#xff1…

滴滴学生认证拉新上线了 地推网推百搭项目

滴滴学生认证可以通过“聚量推客”申请&#xff0c;是一手官签服务商 量级足够大 优势&#xff1a;实时数据T1结算 百分百数据 滴滴学生认证可搭配小红书签到拉新、美团私域校园版拉新、美团圈圈拉新一起做&#xff0c;这样能赚取更多佣金

springboot和flask整合nacos,使用openfeign实现服务调用,使用gateway实现网关的搭建(附带jwt续约的实现)

环境准备&#xff1a; 插件版本jdk21springboot 3.0.11 springcloud 2022.0.4 springcloudalibaba 2022.0.0.0 nacos2.2.3&#xff08;稳定版&#xff09;python3.8 nacos部署&#xff08;docker&#xff09; 先创建目录&#xff0c;分别创建config&#xff0c;logs&#xf…

Chatgpt网页版根据关键词自动批量写原创文章软件【可多开自动登录切换gpt账号】

Chatgpt网页版根据关键词自动批量写原创文章软件介绍&#xff1a; 1、需要放入GPT账号和密码放入在账号库.txt里&#xff0c;可以放入多组账号密码&#xff0c;账号切换轮流使用。 2、可以自定义回答指令&#xff0c;也可多个回答指令随机切换。 3、可以给关键词加双标题&…

【EI会议征稿】 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)

2024年遥感、测绘与图像处理国际学术会议(RSMIP2024) 2024 International Conference on Remote Sensing, Mapping and Image Processing 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)将于2024年1月19日-21日在中国厦门举行。会议主要围绕遥感、测绘与图像处理等研究领…

宝塔Linux面板Java项目前后端部署 (PHP部署前端文件)

1. 上传前端文件 将整个文件夹拖进来 2. PHP项目 (添加站点) 添加证书SSL 新增配置文件 location /dev-api/{proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_…

网络新闻发稿为何经久不衰?

有的老板可能看不到新闻营销的直接回报&#xff0c;一直不乐意在此方面投入&#xff0c;但是却看到竞争对手一直在搞新闻营销&#xff0c;也就安排个PR做做新闻公关。小马识途营销顾问观察&#xff0c;自互联网诞生以来&#xff0c;新闻营销一直是网络营销工作中的一个重点。 如…

Mysql系列 -索引数据结构

索引就是排好序的数据结构&#xff0c;可以帮助我们快速的查找到数据&#xff0c;那么底层的数据到底是如何存储的呢&#xff1f; 为什么InnoDB 用的是Btree 存储结构&#xff1f; 大家可以看看这个可视化的网站 数据结构和算法的可视化工具 可以看到数据结构里面有链表&…