ssh服务登录原理与配置

news2024/10/7 8:31:55

文章目录

  • 前言
  • 一、基于口令的认证(用户名密码)
  • 二、基于公钥的认证(免密登录)
  • 三、禁止用户登录和修改端口
  • 四、免密登录具体操作

前言

非对称加密是在认证用户连接的时候使用的,对称加密是在用户连接之后开始传输数据的时候加密数据的

一、基于口令的认证(用户名密码)

在这里插入图片描述
1.客户端请求连接;
2.服务端将公钥发送到客户端(需要用户同意,公钥保存在用户家目录下 的.ssh/known_hosts);
3.客户端使用公钥加密自己的密码;
4.服务端收到客户端用公钥加密的密码以后用私钥进行解密;
5.使用解密的密码进行验证,验证没问题登录成功。
在这里插入图片描述
注:但是要确认公钥是所需要连接的服务器发出的,有坏人会进行中间人攻击,利用它自己的公钥发送给用户,用户使用了坏人的公钥加密密码,这样坏人解密以后就知道了用户的密码,然后就用用户的密码去连接真正的服务器。

二、基于公钥的认证(免密登录)

1.客户端要首先生成一对密钥(公钥和私钥)

2.把客户端的公钥需要你手动放到服务器上面(要手动的放到服务器,首先得知道这个服务器),这里就已经确保服务器是可信的。放到服务器的用户家目录的~/.ssh/authorized_keys

3.客户端请求服务器

4.服务器收到客户端的请求之后,先生成随机数random_server, 使用客户端放在authorized_keys这个文件中的公钥对随机数进行加密pubkey(random_server)发送给客户端

5.客户端有公钥和私钥,客户端收到这个加密的数据pubkey(random_server), 客户端使用私钥进行解密拿到random_server使用MD5(hash) 对random_server和sessionkey(会话密钥,在密钥交换步骤产生的)加密形成一个摘要digest1发送给服务器

6.服务器接收到digest1, 然后服务器本身自己使用之前协商过的MD5算法,自己也知道random_server, 也知道会话密钥sessionkey也是使用MD5算法对random_server sessionkey进行加密形成摘要digest2,最后去比较digest1 和 digest2是否相等,如果相等,登录成功,如果不相等,登录失败。
在这里插入图片描述

三、禁止用户登录和修改端口

配置文件/etc/ssh/sshd_config
PermitRootLogin设置no为不允许root用户登录,设置为yes为允许root用户登录
在这里插入图片描述

设置端口号为10086,如果修改配置文件后重启失败可能是selinux影响,可以关闭selinux解决
在这里插入图片描述

客户端不验证指纹StrictHostKeyChecking ask   (ssh_config文件)
密码生成工具:pwgen -cnBs1 7 3
踢出登录的用户:pkill -kill -t pts/1

四、免密登录具体操作

本机IP192.168.68.178
服务器IP192.168.68.181(需要被登录的机器)

ssh-keygen #生成公钥与私钥
ssh-copy-id -p 2222  zhangsan@192.168.68.181 #将公钥传到需要被登录的机器,端口号修改过2222,默认是22

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】深拷贝和浅拷贝 ④ ( 深拷贝示例 )

文章目录 一、深拷贝示例1、浅拷贝问题2、自己实现深拷贝 二、深拷贝完整代码示例 一、深拷贝示例 1、浅拷贝问题 在上一篇博客 【C】深拷贝和浅拷贝 ③ ( 浅拷贝内存分析 ) 中 , 使用了浅拷贝 , 将 原始对象 Students 赋值给了 拷贝对象 Student s2 ; 使用 C 编译器 生成的 默…

Mysql的基本查询练习

目录 一、Create 1.1单行数据全列插入 1.2 多行数据指定列插入 1.3插入否则更新 1.4 替换 二、Retrieve 2.1全列查询 2.2指定列查询 2.3查询字段为表达式 2.4为查询结果指定别名 2.5 结果去重 2.6 where 条件 2.6 NULL的查询 2.7 结果排序 三、 Update 四、Dele…

电力系统直流潮流分析【N-1】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

VHOST-SCSI代码分析(0)VHOST概述

与VIRTIO框架相比,VHOST将设备放到HOST上,让Guest和Host Kernal Space之间共享virtqueue,减少Exception Level切换。 对于数据的传递,依次经历:Guest UserSpace(EL0)-> Guest KernelSpace&am…

MySQL索引,事务及存储引擎

目录 MySQL索引 创建索引的依据: 索引的类型 普通索引 唯一索引 主键索引 组合索引 全文索引 查看索引 删除索引 事务 事务的 ACID 特性 原子性 一致性 隔离性 持久性 隔离级别 设置隔离级别 事务管理操作 自动提交事务 存储引擎 M…

GODIVA论文阅读

论文链接:GODIVA: Generating Open-DomaIn Videos from nAtural Descriptions 文章目录 摘要引言相关工作Video-to-video generationText-to-image generationText-to-video generation GODIVA方法逐帧视频自动编码器GODIVA视频生成器 实验数据集评价指标自动评估指…

QT基础教程(对话框1)

文章目录 前言一、对话框概念二、模态对话框三、非模态对话框总结 前言 本篇文章我们来讲解QT中的对话框。 资料合集地微信公众号:优质程序猿一、对话框概念 在Qt中,对话框(Dialog)是一种用于与用户进行交互、收集输入或展示信…

适用于 Android 的 Windows 子系统™️发行说明

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 内部版本 2304.40000.3.0 内部版本 2303.40000.3.0 内部版本 2302.4000 内部版本 2301.40000.4.0 内部版本 221…

【wxWidgets 如何实现wxAccordion 手风琴组件】

1. 简要说明 wxWidgets 并没有提供wxAccordion 手风琴组件面板, 网上也基本没有找到资料,CSDN有个标题:wxAccordion:wxWidgets的手风琴控件下载链接,再无资料可查, 但是其他语言是提供了手风琴面板组件的, 那么怎么办呢,开干喽… 2. 效果展示 3. 交流探讨 代码就暂时不发了,…

【LeetCode-简单题】225. 用队列实现栈

文章目录 题目方法一:单个队列实现 题目 方法一:单个队列实现 入栈 和入队正常进行出栈的元素其实就是队列的尾部元素,所以直接将尾部元素弹出即可,其实就可以将除了最后一个元素的其他元素出队再加入队,然后弹出队首元…

第二章 进程与线程 八、处理机调度(时机切换、过程调度方式)

一、进程调度的时机 二、进程调度的方式 1、非剥夺调度方式: 非剥夺调度方式,又称非抢占方式。即只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻…

virtualbox配置ubuntu1804虚拟机相关流程

virtualbox配置ubuntu1804虚拟机相关流程 相关版本能解决的问题安装流程1:新建虚拟机安装流程2:配置虚拟机安装流程3:安装虚拟机系统安装流程4:设置ubuntu 相关版本 virtualbox使用VirtualBox官网下载的6.1.34 r150636 版。ubunt…

CSRF攻击原理详解

CSRF概念: CSRF定义: 跨站请求伪造(英语:Cross-site request forgery)是一种对网站的恶意利用,也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种…

通用商城项目(下)之——Nginx的安装及使用

(作为通用商城项目的一个部分,单独抽离了出来。查看完整见父页面: ) 加入Nginx-完成反向代理、负载均衡和动静分离 1.配置SSH-使用账号密码,远程登录Linux 1.1配置实现 1、配置sshd 1)sudo vi /etc/ssh/sshd_confi…

Rasa:使用大语言模型进行意图分类

Rasa:使用大语言模型进行意图分类 在Rasa的最新版本(3.x)中,引入了一种新的意图分类方法,即使用大型语言模型(LLM)和一种称为检索增强生成(RAG)的方法进行意图分类。 LLM意图分类器是一种全新的意图分类器,利用大型语言模型(LLM)来对意图进行分类。LLM意图分类器…

汽车租赁系统设计与实现

汽车租赁系统 1.需求分析 1.1任务概述 1.2开发环境和使用技术 1.3数据库设计 2.登陆模块 2.1登陆页面的代码是: 2.2登录类login.java的代码如下: 2.3LoginServlet.java的代码如下: 3.公共…

ESP-IDF学习——1.环境安装与hello-world

ESP-IDF学习——1.环境安装与hello-world 0.前言一、环境搭建1.官方IDE工具2.vscode图形化配置 二、示例工程三、自定义工程四、点灯五、总结 0.前言 最近在学习freertos,但由于买的书还没到,所以先捣鼓捣鼓ESP-IDF,因为这个比Arduino更接近底…

神秘字符(acm模式)

#include<iostream> #include<cctype> #include<string> using namespace std; int main() {int n;cin >> n;getchar();while (n--){string str, str1, str2"";//cin >> str >> str1;getline(cin, str);//遇到换行符就忽略&…

GB28181学习(五)——实时视音频点播(信令传输部分)

要求 实时视音频点播的SIP消息应通过本域或其他域的SIP服务器进行路由、转发&#xff0c;目标设备的实时视音频流宜通过本域的媒体服务器进行转发&#xff1b;采用INVITE方法实现会话连接&#xff0c;采用RTP/RTCP协议实现媒体传输&#xff1b;信令流程分为客户端主动发起和第…

CCC数字钥匙设计【BLE】--PE进入流程建立BLE加密连接

1、PE进入流程 PE进入的流程大体可以拆解为如下步骤&#xff1a; 1、手机与车端建立BLE加密连接&#xff1b; 2、创建URSK流程&#xff1b; 3、时间同步流程&#xff1b; 4、UWB测距流程&#xff1b; 5、根据各锚点BLE的RSSI及UWB的距离值&#xff0c;通过定位算法进行手…