简介

SSH只是一个协议,基于这个协议有不同的实现,这些实现中有开源,也有收费。

原理

普通网络通信一般是明文通信,数据容易被中间人拦截并且解析,而SSH协议则提供了基于内容加密服务。

流程:

第一种:口令验证登陆

(1)客户端向远程主机发起登陆链接请求。

(2)远程主机收到用户的登录连接请求,然后把自己的公钥发给客户端。

(3)客户端收到这个公钥,并使用这个公钥,将登录密码加密后,发送到远程主机。

(4)远程主机用自己的私钥,解密登录密码,并验证该密码与当前要登陆的用户密码是否匹配,匹配就同意用户登录。

缺陷:口令验证,主动权在客户端,真正的远程主机可能会被拦截掉,客户端访问的可能是伪装的远程主机,此时客户端收到的密钥是伪装机的,客户端发送加密后的密码后,会被伪装机通过私钥解密,此时伪装机就获取到了真实远程主机的账密,那么真实远程主机的安全就受到了严重威胁。

第二种:密钥验证登陆

前提:客户端在本地生成非对称密钥(公钥、私钥)。并且将公钥放到了远程主机的.ssh/authorized_keys文件中。

(1)客户端向远程主机发起登陆连接请求,附带信息

备注:网上对于附带信息,我目前看到两个版本,一个是:ip,用户名;一个是:公钥信息。对于第一种,我是肯定不赞同,客户端物理位置不定,Ip会变,而且公钥信息中根本没有IP,用户名等信息,所以用IP和用户名在远程主机中定位公钥肯定不行;第二版本我比较赞同,但是目前还有待验证。

(2)远程主机根据附带的信息定位到客户端对应的公钥,然后生成一个随机串并用该公钥加密,然后将生成的加密串发送给客户端。

(3)客户端收到远程主机送来的加密串,然后用自己的私钥解密,再将解密后的字符串送给远程主机。

(4)远程主机接收到解密后的字符串,然后跟自己最初生成的字符串作比较,一样则校验成功,允许与客户端建立登陆链接。

登陆命令行
ssh -p port user@host
user表示远程服务的登录用户名,host表示远程ip ,port表示远程服务的端口号(默认为22,可省略)
---------------------
作者:Mote_
来源:CSDN
原文:https://blog.csdn.net/dreamwbt/article/details/80280557
版权声明:本文为博主原创文章,转载请附上博文链接!

SSH协议详解的更多相关文章

  1. SSH协议详解(转)

    转发的http://blog.csdn.net/macrossdzh/article/details/5691924 很透彻啊,学习了 一.什么是SSH SSH是英文Secure Shell的简写形式 ...

  2. 【转载】TCP /IP协议详解

    首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...

  3. 【转】SSH服务详解

    [转]SSH服务详解 第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Gro ...

  4. SSH命令详解2

    ssh命令详解     目录         前言     一.ssh命令         1.Ssh参数解释         2.如何连接远程主机         3.利用Xstart 在windo ...

  5. 第3章 TCP协议详解

    第3章 TCP协议详解 3.1 TCP服务的特点 传输协议主要有两个:TCP协议和UDP协议,TCP协议相对于UDP协议的特点是 面向连接使用TCP协议通信的双方必须先建立连接,完成数据交换后,通信双 ...

  6. (转)SSH服务详解

    SSH服务详解 原文:http://www.cnblogs.com/clsn/p/7711494.html 第1章 SSH服务1.1 SSH服务协议说明SSH 是 Secure Shell Proto ...

  7. zz:NETCONF协议详解

    随着SDN的大热,一个诞生了十年之久的协议焕发了第二春,它就是NETCONF协议.如果你在两年前去搜索NETCONF协议,基本得到的信息都是"这个协议是一个网管协议,主要目的是弥补SNMP协 ...

  8. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  9. linux高性能服务器编程 (三) --TCP协议详解

    第三章 IP协议详解 TCP协议是TCP/IP协议族中的另外一个重要的协议,与IP协议相比,TCP协议更高进应用层.一些重要的socket选项都和TCP协议相关.这一章主要从如下方面学习: 1)TCP ...

随机推荐

  1. ABAP error:CONVT_NO_NUMBER

    今天写了个接口,传入数据到SAP,结果接收后在报表展示时直接报错. 检查后发现数据转换出错,接收到的数据格式混乱. 最后检查了所有地方发现,源系统传入的数据长度为9个字节,但是自己的接收程序,定义数据 ...

  2. 2017-2018-2 20155203《网络对抗技术》Exp6 信息搜集与漏洞扫描

    1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 通过搜索引擎进行信息搜集敏感信息 在百度搜索栏中输入filetype:关键字 site:edu.c ...

  3. 有关C++的数据类型(int,long,short,float,double等等)

    再看C++ prime plus 第六版的时候 对数据类型又一次有些乱了,在看了这篇博客后,重新清晰起来了. 有关C++的数据类型(int,long,short,float,double等等)

  4. [Oracle]System 表空间的文件丢失

    如果system 表空间的文件丢失,假设有备份的情况,可以恢复.数据库需要设置为mount 状态,然后restore/recover datafile 模拟实验: SQL> select nam ...

  5. CDH上Cloudera Management Service 各个角色迁移至其他节点

    1.首先查看Cloudera Management Service下有哪些服务,cdh版本为5.9.2: 可以看到基本上有以上6个角色: 2.停止所有角色,并执行删除: 3.找到集群中另外一个节点,添 ...

  6. [CF587F]Duff is Mad[AC自动机+根号分治+分块]

    题意 给你 \(n\) 个串 \(s_{1\cdots n}\) ,每次询问给出 \(l,r,k\) ,问在 \(s_{l\cdots r}\) 中出现了多少次 \(s_k\) . \(n,q,\su ...

  7. [BZOJ4851][JSOI2016]位运算[矩阵快速幂]

    题意 给定长度为 \(\rm |S|\) 的 \(\rm 01\) 串并将其倍长 \(k\) 次得到一个 \(\rm|S|\times k\) 位的二进制数 \(R\) ,求有多少种在 \([0,R- ...

  8. Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法

    Java容器类List.ArrayList.Vector及map.HashTable.HashMap的区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数 ...

  9. C#易忘点

    下面是自己总结的一些C#语言方面用的少容易忘的地方,总结一下,在用的时候看一下.(仅针对本人) 参数数组 定义一个函数,用来取得数字的和,但是数字的个数不确定. 解决方案: 1,定义一个函数,参数传递 ...

  10. C++基础知识(1)

    C语言是结构化编程语言(for循环.while循环.do while循环和if else语句),将低级语言的效率.硬件访问能力和高级语言的通用性.可移植性融合在一起. UNIX编译和链接 UNIX用C ...