SSH 为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议;

ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据;这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道;

从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒;
SSH 主要由三部分组成:
传输层协议 [SSH-TRANS]
提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
用户认证协议 [SSH-USERAUTH]
用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
连接协议 [SSH-CONNECT]
将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

转载于:https://www.cnblogs.com/lhq8998/p/7270800.html

ssh (安全外壳协议)相关推荐

  1. ssh - 安全外壳协议的详解,为什么使用它

    一:概念 SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前 ...

  2. ssh (安全外壳协议)Secure Shell 百度百科

    ssh (安全外壳协议) 编辑 本词条由"科普中国"百科科学词条编写与应用工作项目 审核 . SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network ...

  3. linux ssh和sftp区别,使用 SSH 和 SFTP 协议

    导读 通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等. 几年前,我决定配置另外一台电脑,以便我能在工作时访问它来传输我所需要的文件.要做到这一点,最基本的一步是要求 ...

  4. python ssh实现_SSH协议的Python实现paramiko

    paramiko安装 SSH是一个协议,paramiko 是一个Python 的库,该库支持sshv2协议,实现了对远程服务器执行操作 安装命令: pip3 install paramiko SSHC ...

  5. 学习SSH远程登陆协议与TCP Wrappers

    目录 OpenSSH服务器 ■SSH (Secure Shell)协议 ssh原理 ssh加密通讯原理 (1)对称加密 (2)非对称加密 登录 服务端配置 全部配置项详细解释: ■用户登录控制 ■登录 ...

  6. ssh(安全协议外壳)

    以下来源于百度百科 https://baike.baidu.com/item/ssh/10407?fr=aladdin SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Netw ...

  7. git切换ssh和http协议

    2019独角兽企业重金招聘Python工程师标准>>> 切换协议: 1. 查看当前remote git remote -v 2. 切换到http: git remote set-ur ...

  8. Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议

    目录 目录 前言 Openstack基金委员会 Openstack贡献者须知 注册Openstack In Launchpad 生成并上传OpenPGP密钥 生成并上传SSH公钥 Join The O ...

  9. SSH使用及协议分析。

    SSH是一个用来替代TELNET.FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题.为了系统安全和用户 自身的权益,推广SSH是必要的.SSH有两个版本,我们现在介绍的是版本2. 安装S ...

  10. SSH使用及协议分析

    SSH是一个用来替代TELNET.FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题.为了系统安全和用户自身的权益,推广SSH是必要的.SSH有两个版本,我们现在介绍的是版本2. 安装SS ...

最新文章

  1. python引入redis_redis 删除大key集合的方法
  2. Globalplatform TEE api介绍
  3. Struts2中配置默认Action
  4. 用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼
  5. 【译】《Understanding ECMAScript6》- 第八章-Module
  6. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
  7. Linux Socket函数手册(二)
  8. 每周送新书:Android软件安全、深入浅出Istio、软件架构设计
  9. 【转】HBase架构解析
  10. bazel proxy 设置
  11. maple里面怎么搜索_教你用Maple全局优化工具寻找最值
  12. GeoServer发布矢量地图服务
  13. 详解安全测试工具:SAST、DAST、IAST、SCA的异同
  14. 关系数据库理论:范式判断、函数依赖、无损分解、正则覆盖
  15. 雷军在联想演讲:全场无言,除了掌声
  16. 实现正负值及多条Y轴 Echarts柱状图
  17. Delphi报表开发ReportMachine的小计和总计的计算
  18. 使用python编写彩色圆圈
  19. 进击的JAVA freshman DAY01
  20. websphere 实用_将WebSphere Cast Iron Studio PGP活动与外部PGP实用程序一起使用

热门文章

  1. 跨站脚本攻击(反射型xss)笔记(一)
  2. Leetcode 137. Single Number I/II/III
  3. 环信即时通讯在工程中的安装——Nusen_Liu
  4. webservice4
  5. CDays-3 习题一 (处理命令行参数)及相关内容解析。Python getopt 简介
  6. C# Socket之TCPUDP
  7. autotools 学习
  8. spring配置redis(xml+java方式)(最底层)
  9. 房间WIFI信号不好怎么办?——无线路由桥接(WDS)
  10. 详解Android核心模块及相关技术