SSH建立原理

article/2025/11/6 18:42:57

一、ssh2协议
    在ssh1中,由单个协议提供密钥交换、身份认证与加密的功能,而ssh2内部由3个协议组合一起,为其提供这些功能。这3个协议:
    传输层协议
    认证协议
    连接协议
传输层协议
主要提供密钥交换与服务器端认证功能
认证协议
主要是提供客户端认证功能,而客户端认证主要有基于口令认证和基于密钥认证
连接协议
主要提供远程执行命令功能
二、工作流程
1,服务器端开启ssh服务,在端口22监听客户端请求

2,客户端发出请求,如果是第一次与服务器建立连接,服务器端会向客户端发送一个rsa key这里写图片描述

而此rsa key会被记录到服务器端的~/.ssh/known_hosts中,下次远程登录服务器就不会出现以上的提示信息这里写图片描述

 
3,客户端接收到服务器端发送过来的rsa key后,就会采用与服务器端协商好的加密算法,生成会话密钥(此会话密钥用于加密客户端与服务器端之间的会话),并用rsa key加密会话密钥,并发送给服务器端。

4,服务器端就用对应的私钥解密已加密的会话密钥,然后用此会话密钥加密确认信息,发送给客户端。客户端用会话密钥解密加密的确认信息,到此,密钥交换成功和服务器认证成功

5,接下来就是客户端的认证,客户端认证有两种方法:

 基于口令认证:客户端发送用会话密钥加密的远程登入的用户名与密码,服务器接收到,用会话密钥解密,并验证用户名与密码的正确性。

基于密钥认证:口令认证容易受“中间人”攻击,而密钥认证安全性较好,用户名与密码不用在网上传输,被人破解。客户端生成一对密钥,此密钥只用于客户端的认证,然后将公钥内容上传到服务器端~/.ssh/authorized_hosts文件中。客户端发出密钥认证请求,服务器端就会用客户端的公钥加密一段数据,发送给客户端,客户端用对应的私钥解密,然后将数据与会话密钥进行散列运算,生成摘要,发送给服务器端,服务器端就会用原始数据和会话密钥,生成摘要,并对比两个摘要是否一致,若一致,则客户端认证成功
6,连接成功后,就可以远程登入主机,执行远程命令控制

三、基于密钥认证实例
1.客户端生成一对密钥

2.将公钥上传到服务器端,这里有两种方法上传
一种使用ssh-keygen命令:

查看服务器端的~/.ssh/authorized_hosts文件

 

另一种方法,在客户端使用scp(基于ssh协议的文件复制工具)

在服务器端的操作,查看是否成功收到客户端公钥

然后将公钥文件内容导入~/.ssh/authorized_hosts文件中,如果~/.ssh/authorized_hosts(权限为600)文件不存在,就创建


3.测试

 


建议:客户端认证最好用基于密钥认证,禁止客户端使用root身份登入主机,可以修改配置参数

 


http://chatgpt.dhexx.cn/article/UEul5m1S.shtml

相关文章

SSH2协议加密与连接过程

最近在做ssh2联动交换机模块,看到libssh2-1.9.0版本对于用户认证有三种不同的方式: ① password(默认)② keyboard-interactive ③ publickey 看代码并不是太理解,所以查询了一番,SSH2通信大致分为两步&a…

来说说datatype

今天敲代码一直卡在一个问题上面好久那就是--datatype的未定义,起初不晓得datatype的含义,遇到这种情况首先想到的就是自己又忘记加上面头文件了。随即写了个stdlib.h上去。可是问题并没有得到解决,还是显示未定义。 怀疑是不是自己拼写的错误…

StringType报错,提示不是DataType类型

使用scala语言将RDD转化为sparkSQL时,构造StructType时StringType报错 val schema StructType( //构建函数,给每列数据一个统一的列名Seq(StructField("phoneNum",IntegerType,true),StructField("time",Integer…

mysql workbench的datatype设置问题

create table之后,创建column,选择datatype。我选择timestamp和datetime如图所示后就失败。 问题就在于要么去掉括号,要么括号里面填写数字。 成功后如图。 这里只要看paidTime的datatype即可。 这个问题真的花了我很久的时间,我…

datalist

在Web设计中,经常会用到如输入框的自动下拉提示,这将大大方便用户的输入。在以前,如果要实现这样的功能,必须要求开发者使用一些Javascript的技巧或相关的框架进行ajax调用,需要一定的编程工作量。但随着HTML5 的慢慢普及,开发者可…

TS DataType

TypeScript有13中数据类型 布尔值(Boolean) 最基本的数据类型就是简单的 true/ false值,在 JavaScript和 TypeScript里叫做 boolean(其它语言中也一样)。 let isDone: boolean false;数字(Number) 和 JavaScript一样, TypeSc…

Autosar DataType介绍

前言 看了一下基本的配置,发现Autosar的DataType的内容比较多,也比较复杂,所以单独开一章来记录一下 Autosar DataType介绍 前言一.基本数据类型1.1基本类型1.2其他类型 二,详细数据介绍2.1 新建数据类型的具体类型2.2 详细举例介…

contentType与dataType

$.ajax contentType 和 dataType , contentType 主要设置你发送给服务器的格式,dataType设置你收到服务器数据的格式。 在http 请求中,get 和 post 是最常用的。在 jquery 的 ajax 中, contentType都是默认的值:application/x-ww…

Types of Data

企业中的数据都如何分类? 粗略的分类 如果粗略点的分类话,可以分为两类数据:主数据和事务型数据。 主数据(Master Data) “Master Data is your business critical data that is stored in disparate systems spread across your Enterprise.…

Python DataType(数据类型)

简述 变量:指代任意一个数,或其他数据类型 变量名:大小写英文、数字和下划线(_)的组合,且不能用数字开头 Python主要的数据类型有如下:(允许自定义数据类型) 整数&…

条件随机场适用于无监督学习吗?

条件随机场适用于无监督学习吗? 在网上搜到的资料比较少。 HMM模型可以用EM算法来进行无监督学习。

深入理解机器学习——概率图模型(Probabilistic Graphical Model):条件随机场(Conditional Random Field,CRF)

分类目录:《深入理解机器学习》总目录 条件随机场(Conditional Random Field,CRF)是一种判别式无向图模型,在《概率图模型(Probabilistic Graphical Model):隐马尔可夫模型&#xff…

概率图模型之条件随机场

条件随机场(CRF)是一种判别式无向图模型。生成式模型是直接对联合分布进行建模,而判别式模型是对条件分布进行建模。前面提到的隐马尔可夫模型和马尔可夫随机场都是生成式模型,而条件随机场则是判别式模型。条件随机场试图对多个变…

马尔可夫随机场与条件随机场

文章目录 马尔可夫随机场1. 引言2. 团与极大团3. MRF联合概率4. MRF的条件独立性(有向分离)条件随机场 马尔可夫随机场 1. 引言 马尔可夫随机场(Markov Random Field,简称MRF),是马尔可夫网的一种,生成式模型,是一种著名的无向图…

通俗易懂条件随机场CRF

条件随机场CRF 条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。本系列主要关注于CRF的特殊形式:线性链(Linear chain) CRF。本文关注与CRF的模型基础。…

条件随机场(2)——概率计算

1.CRF简化表示 先回顾一下线性链CRF参数化形式 和都可以表示为随机变量的函数,因此,可以将和统一成 其中,是转移特征的个数,是状态特征的个数。特征函数所代表的特征集合一共有K个值,。 用来表示特征的权重&am…

条件随机场详细推导

条件随机场 条件随机场简介1.条件随机场简介 条件随机场举例2.条件随机场举例 条件随机场三个基本问题及推导3.条件随机场三个基本问题及推导 参考文献 条件随机场简介 1.条件随机场简介 马尔可夫随机场:设有联合概率分布P(Y),由无向图G(V,E)表示&…

经典算法: 条件随机场(conditional random field, CRF)

1. 引言 条件随机场,conditional random field,CRF,是给定一组输入随机变量的条件下,输出随机变量的条件概率分布模型。 条件随机场和隐马尔可夫模型的联系: 可以看到,条件随机场是一种无向图。 2. 概…

条件随机场原理介绍

1. 引言 条件随机场(Conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场常用于序列标注问题,比如命名实体识别…

条件随机场(CRF)概述

转自:原文链接 条件随机场是一种判别模型,用于预测序列。他们使用来自先前标签的上下文信息,从而增加了模型做出良好预测所需的信息量。在这篇文章中,我将讨论一些将介绍 CRF 的主题。我会过去: 什么是判别分类器&am…