SSH工作过程简介和SSH协议算法集简介
SSH简介
SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议。
SSH协议采用了典型的客户端/服务器模式,并基于TCP协议协商建立用于保护数据传输的会话通道。SSH协议有两个版本,SSH1.x和SSH2.0(本文简称SSH1和SSH2),两者互不兼容。SSH2在性能和安全性方面比SSH1有所提高。
SSH工作过程
|
阶段 |
说明 |
|
连接建立 |
SSH服务器在22号端口侦听客户端的连接请求,在客户端向服务器端发起连接请求后,双方建立一个TCP连接 |
|
版本协商 |
双方通过版本协商确定最终使用的SSH版本号 |
|
算法协商 |
SSH支持多种算法,双方根据本端和对端支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法,以及用于数据完整性保护的HMAC算法 |
|
密钥交换 |
双方通过DH(Diffie-Hellman Exchange)交换,动态地生成用于保护数据传输的会话密钥和用来标识该SSH连接的会话ID,并完成客户端对服务器端的身份认证 |
|
用户认证 |
SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证 |
|
会话请求 |
认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务(目前支持Stelnet、SFTP、SCP、NETCONF),即请求与服务器建立相应的会话 |
|
会话交互 |
会话建立后,SSH服务器端和客户端在该会话上进行数据信息的交互 该阶段,用户在客户端可以通过粘贴文本内容的方式执行命令,但文本会话不能超过2000字节,且粘贴的命令最好是同一视图下的命令,否则服务器可能无法正确执行该命令。如果粘贴的文本会话超过2000字节,可以采用将配置文件通过SFTP方式上传到服务器,利用新的配置文件重新启动的方式执行这些命令 |
本地密钥对
功能简介
服务器端的DSA、ECDSA或RSA密钥对有两个用途,其一是用于在密钥交换阶段生成会话密钥和会话ID,另外一个是客户端用它来对连接的服务器进行认证。客户端验证服务器身份时,首先判断服务器发送的公钥与本地保存的服务器公钥是否一致,确认服务器公钥正确后,再使用该公钥对服务器发送的数字签名进行验证。
虽然一个客户端只会采用DSA、ECDSA或RSA公钥算法中的一种来认证服务器,但是由于不同客户端支持的公钥算法不同,为了确保客户端能够成功登录服务器,建议在服务器上同时生成DSA、ECDSA和RSA三种密钥对。
- 生成RSA密钥对时,将同时生成两个密钥对——服务器密钥对和主机密钥对。SSH1利用SSH服务器端的服务器公钥加密会话密钥,以保证会话密钥传输的安全;SSH2通过DH算法在SSH服务器和SSH客户端上生成会话密钥,不需要传输会话密钥,因此SSH2中没有利用服务器密钥对。
- 生成DSA密钥对时,只生成一个主机密钥对。SSH1不支持DSA算法。
- 生成ECDSA密钥对时,只生成一个主机密钥对
SSH协议算法集简介
设备作为服务器或者客户端与对端建立Stelnet、SFTP、SCP会话过程中,将使用指定的算法优先列表进行协商。指定的算法包括:
- 密钥交换算法
- 主机签名算法
- 加密算法
- MAC算法
协商过程中,客户端采用的算法匹配顺序为优先列表中各算法的配置顺序,服务器根据客户端的算法来匹配和协商。
H3C高端设备配置SSH2协议密钥交换算法优先列表
(1) 进入系统视图。
system-view
(2) 配置SSH2协议密钥交换算法优先列表。
(非FIPS模式)
ssh2 algorithm key-exchange { dh-group-exchange-sha1 | dh-group1-sha1 | dh-group14-sha1 | ecdh-sha2-nistp256 |ecdh-sha2-nistp384 } *
缺省情况下,SSH2协议采用的缺省密钥交换算法从高到底的优先级列表为ecdh-sha2-nistp256、ecdh-sha2-nistp384、dh-group-exchange-sha1、dh-group14-sha1和dh-group1-sha1。
(FIPS模式)
ssh2 algorithm key-exchange { dh-group14-sha1 | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 } *
缺省情况下,SSH2协议采用的缺省密钥交换算法从高到底的优先级列表为ecdh-sha2-nistp256、ecdh-sha2-nistp384和dh-group14-sha1。
H3C高端设备配置SSH2协议主机签名算法优先列表
(1) 进入系统视图。
system-view
(2) 配置SSH2协议主机签名算法优先列表。
(非FIPS模式)
ssh2 algorithm public-key { dsa | ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | x509v3-ecdsa-sha2-nistp256 |x509v3-ecdsa-sha2-nistp384 } *
缺省情况下,SSH2协议使用的缺省主机签名算法从高到底的优先级列表为x509v3-ecdsa-sha2-nistp256、x509v3-ecdsa-sha2-nistp384、ecdsa-sha2-nistp256、ecdsa-sha2-nistp384、rsa和dsa。
(FIPS模式)
ssh2 algorithm public-key { ecdsa-sha2-nistp256 | ecdsa-sha2-nistp384 | rsa | x509v3-ecdsa-sha2-nistp256 | x509v3-ecdsa-sha2-nistp384 } *
缺省情况下,SSH2协议使用的缺省主机签名算法从高到底的优先级列表为x509v3-ecdsa-sha2-nistp256、x509v3-ecdsa-sha2-nistp384、ecdsa-sha2-nistp256、ecdsa-sha2-nistp384和rsa。
H3C高端设备配置SSH2协议加密算法优先列表
(1) 进入系统视图。
system-view
(2) 配置SSH2协议加密算法优先列表。
(非FIPS模式)
ssh2 algorithm cipher { 3des-cbc | aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm | des-cbc } *
缺省情况下,SSH2协议采用的缺省加密算法从高到底的优先级列表为aes128-ctr、aes192-ctr、aes256-ctr、aes128-gcm、aes256-gcm、aes128-cbc、3des-cbc、aes256-cbc和des-cbc。
(FIPS模式)
ssh2 algorithm cipher { aes128-cbc | aes128-ctr | aes128-gcm | aes192-ctr | aes256-cbc | aes256-ctr | aes256-gcm } *
缺省情况下,SSH2协议采用的缺省加密算法从高到底的优先级列表为aes128-ctr、aes192-ctr、aes256-ctr、aes128-gcm、aes256-gcm、aes128-cbc和aes256-cbc。
H3C高端设备配置SSH2协议MAC算法优先列表
(1) 进入系统视图。
system-view
(2) 配置SSH2协议MAC算法优先列表。
(非FIPS模式)
ssh2 algorithm mac { md5 | md5-96 | sha1 | sha1-96 | sha2-256 | sha2-512 } *
缺省情况下,SSH2协议使用的缺省MAC算法从高到底的优先级列表为sha2-256、sha2-512、sha1、md5、sha1-96和md5-96。
(FIPS模式)
ssh2 algorithm mac { sha1 | sha1-96 | sha2-256 | sha2-512 } *
缺省情况下,SSH2协议使用的缺省MAC算法从高到底的优先级列表为sha2-256、sha2-512、sha1和sha1-96。
SSH工作过程简介和SSH协议算法集简介的更多相关文章
- 2-3 远程管理命令-SSH工作方式简介
03.远程登录和复制文件 序号 命令 对应英文 作用 01 ssh 用户名@ip secure shell 关机/重启 02 scp 用户名@ip:用户名或路径 用户名@ip:文件名或路径 secur ...
- [转+自]SSH工作原理
SSH工作原理 熟悉Linux的人肯定都知道SSH.SSH是一种用于安全访问远程服务器的网络协议.它将客户端与服务端之间的消息通过加密保护起来,这样就无法被窃取或篡改了.那么它安全性是如何实现的呢? ...
- J2EE进阶(十八)基于留言板分析SSH工作流程
J2EE进阶(十八)基于留言板分析SSH工作流程 留言板采用SSH(Struts1.2 + Spring3.0 + Hibernate3.0)架构. 工作流程(以用户登录为例): 首先是用 ...
- TCP工作过程;TCP Flood的攻击的原理和现象;TCP协议设计的安全隐患与防范对策
TCP分三个阶段 连接建立(三次握手) 数据传输 连接释放(四次挥手) TCP工作过程 TCP连接建立阶段 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给S ...
- DNS协议工作过程;DNS的安全隐患
DNS协议工作过程 下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...
- 【Android - 自定义View】之View的工作过程简介
View的工作过程分为三个过程: View的measure过程: View的layout过程: View的draw过程. 我们知道,一个Activity就是一个窗口,这个窗口中包含一个Window.一 ...
- zookeeper工作原理、安装配置、工具命令简介
1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...
- [转载] zookeeper工作原理、安装配置、工具命令简介
转载自http://www.cnblogs.com/kunpengit/p/4045334.html 1 Zookeeper简介Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到 ...
- SMB2 Protocol – 简介(应用层协议主要用于在计算机间共享文件、打印机、串口等)
SMB2 Protocol – 简介 SMB协议简介: 服务器信息块(SMB)协议是一个应用层协议主要用于在计算机间共享文件.打印机.串口等. 在介绍SMB协议的时候,一般提到使用的端口为139,44 ...
随机推荐
- 痞子衡嵌入式:在i.MXRT启动头FDCB里使能串行NOR Flash的DTR模式
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在FDCB里使能串行NOR Flash的DTR模式. 前两篇文章 <IS25WP系列Dummy Cycle设置> 与 < ...
- 963. Minimum Area Rectangle II
Given a set of points in the xy-plane, determine the minimum area of any rectangle formed from these ...
- Linux安装MySQL8高版本压缩包(通用)
前言 前段时间领导让我部署测试环境,希望安装高版本的MySQL,过程遇到很多问题,特此记录帮助迷失的人们 下载 MySQL官方下载地址:https://dev.mysql.com/downloads/ ...
- WordPress 函数do_action()详解和应用举例
do_action()函数: 我们经常能看到在一些WordPress函数中调用了do_action()函数,例如get_header(), get_footer()等调用模板的函数中经常调用do_ ...
- hdu4876 深搜+(随机枚举剪枝)
题意: 给你n个数,让你从选择k个数,然后排成一个环(k个数的顺序随意,但是排成一个环后就不能变了),然后可以在这个环上任意的找连续w个数(w<=k),可以找多次,得到一个值等于当前 ...
- ARM详细指令集
算术和逻辑指令 ADC : 带进位的加法 (Addition with Carry) ADC{条件}{S} <dest>, <op 1>, <op 2> dest ...
- hdu2158 最短区间版大家来找碴
题意: 最短区间版大家来找碴 Problem Description 给定一个序列,有N个整数,数值范围为[0,N).有M个询问,每次询问给定Q个整数,可能出现重复值 ...
- POJ3070矩阵快速幂简单题
题意: 求斐波那契后四位,n <= 1,000,000,000. 思路: 简单矩阵快速幂,好久没刷矩阵题了,先找个最简单的练练手,总结下矩阵推理过程,其实比较简单,关键 ...
- <JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 【JavaScript】【dp】Leetcode每日一题-解码方法
[JavaScript]Leetcode每日一题-解码方法 [题目描述] 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -& ...