SSH协议(1)-工作原理及过程
SSH全称是Secure Shell,SSH协议是基于应用层的协议,为远程登录会话和其他网络服务提供安全性的协议。
SSH使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp,telnet等),因为它们使用明文传输数据。而SSH在传输过程中的数据是加密的,安全性更高。
工作原理
SSH协议是基于非对称加密方法的,服务器和客户端都会生成自己的公钥和私钥。
(1) 服务器建立公钥。若远程服务器是新系统,会在/etc/ssh目录下生成一个名为ssh_host_ecdsa_key.pub的公钥,同时生成一个名为ssh_host_ecdsa_key的私钥,这一对就是远程服务器的公钥与私钥。之后每回启动sshd服务的时候,系统会自动在此路径下查找公钥。
远程服务器的公钥:
(2) 客户端请求连接。linux或者mac系统可以直接通过自带的shell连接,指令为ssh user@host,如果客户端和服务器是相同的用户,则可以省去user,直接使用ssh host。
(3) 服务器发送公钥给客户端。服务器接到请求后,把公钥传给客户端使用。
(4) 客户端记录服务器公钥并计算自己的公私钥。客户端将服务器传来的公钥记录在~/.ssh/known_hosts中,若是已经记录有该服务器公钥,则比对是否一致,一致后就计算客户端自己的公私钥。
客户端保存的服务器公钥:
(5) 客户端发送自己的公钥给服务器。客户端将自己的公钥发送给服务器,这样服务器端就有客户端公钥+服务器自己私钥,客户端就有服务器公钥+客户端自己私钥,组成了非对称加密系统。
(6) 开始双向加解密。服务器发送数据:用客户端公钥加密,客户端收到数据后用自己私钥解密。客户端发送数据:用服务器公钥加密,服务器收到数据后用自己私钥解密。
工作过程
(1) 版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本
(2) 密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法
(3) 认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证
(4) 会话请求阶段, 认证通过后,客户端向服务器端发送会话请求
(5) 交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互
认证方式
认证方式主要有两种:密码认证和公钥认证。
密码认证:输入账号密码进行认证。
公钥认证:需要客户端生成一对公私钥,使用ssh-keygen生成,保存在~/.ssh路径下,然后使用指令ssh-copy-id user@host传到服务器端,以后再登录认证的时候,客户端自动发送公钥给服务器,服务对比一致则通过认证,不要繁琐地输入密码了。
客户端生成的登录公钥:
服务器端接收的客户端登录公钥:
这一篇文章主要记录ssh协议的工作原理及过程,接下来还会写一篇ssh协议涉及的安全威胁及解决办法。
欢迎关注微信公众号:shoshana
SSH协议(1)-工作原理及过程的更多相关文章
- SPI协议及工作原理分析
说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...
- TCP协议通讯工作原理
TCP协议通讯工作原理 一.TCP三次握手 传输控制协议(Transport Control Protocol)是一种面向连接的,可靠的传输层协议.面向连接是指一次正常的TCP传输需要通过在TCP ...
- @清晰掉 spi协议及工作原理分析
说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.net/thread-1916003-1-1.html 一.概述. SPI, Serial Perripheral ...
- 网络数据传输安全及SSH与HTTPS工作原理
本节内容 网络数据传输安全概述 数据加密算法分类 SSH工作原理 HTTPS工作原理 参考资料 个人一直在努力推动git在公司内部的普及和使用,前些日子在公司内部做了一次分享课,给大家介绍了下项目发布 ...
- FTP协议及工作原理
1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...
- FTP协议及工作原理详解
1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...
- ssh框架的工作原理
struts2的工作原理 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextClea ...
- SPI协议及其工作原理浅析
转载自:http://bbs.chinaunix.net/thread-1916003-1-1.html一.概述. SPI, Serial Perripheral Interface, 串行外围设备接 ...
- SPI协议及其工作原理浅析【转】
转自:http://www.laoliu-soft.net/category/tech_chap/tech_linux/ 一.概述. SPI, Serial Perripheral Interface ...
随机推荐
- [信息收集]11种绕过CDN查找真实IP方法【转载】
今天在看一些有关CDN的文章的时候,发现一篇写的蛮好的文章,故转载过来. 原文链接:https://www.cnblogs.com/qiudabai/p/9763739.html 0x01 验证是否存 ...
- linux redhat 安装了jdk检查版本不是自己安装的版本的解决办法
Linux下安装jdk java -version 不是自己所需要的版本 设置环境变量,这是最重要的 在etc/profile文件下添加 export JAVA_HOME=/usr/java/jdk1 ...
- Multiple commands produce "*.framework"
参考链接记录个问题,这是xcode10后新build系统导致的,新系统帮我们检查了很多东西,最优化我们的构建, 两种方案 1.用旧的系统(不推荐) 2.这个是build setting->b ...
- 实现一个hoverDelay延迟hover
实现一个hoverDelay延迟hover author: @TiffanysBear 需求背景 经常在页面开发中,需要使用hover事件来触发相应的网络请求或页面DOM元素显示切换,需要考虑的问题就 ...
- DIOCP任务队列和工作线程
DIOCP任务队列和工作线程 涉及4个单元文件:utils_strings.pas,utils_queues.pas,utils_queueTask.pas,utils_grouptask.pas. ...
- consul上删除已经注册的节点
1,在consul上找到要删除的ID, 2,在consul的节点上删除这个ID:固定格式: 命令如果运行成功:没有任何的返回值 [root@beta-commonsrv01 ~] $curl --re ...
- php接口数据安全解决方案(一)
前言 目录介绍 登录鉴权图 接口请求安全性校验整体流程图 代码展示 演示用户登录 演示获取用户信息 文章完整代码地址 后记 前言 目的: 1.实现前后端代码分离,分布式部署 2.利用token替代se ...
- [Java复习] 分布式事务 Part 1
1. CAP理论 C: Consistency 一致性 A: Availability 可用性 P: Partition tolerance 分区容错性 CAP定理:一个分布式系统不可能同时满足CAP ...
- 起步 - 安装 Git
安装 Git 是时候动手尝试下 Git 了,不过得先安装好它.有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允许,从源代码 ...
- 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_12-用户退出-服务端
实现退出 用户退出要以下动作: 1.删除redis中的token 2.删除cookie中的token controller内定义 spring securety config内放行 对这个url放行 ...