what

SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一族协议,其目的是要在非安全网络上提供安全的远程登录和其他安全网络服务。 我们可以简单理解为:Rlogin和Telnet等的替代方案。

1.SSH主要的三个协议
  • 传输层协议:通过服务器认证,数据机密性,信息完整性等支持
  • 用户认证协议:为服务器提供客户端的身份鉴别
  • 连接协议:将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用;各种高层应用协议可以相对独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制.

    2.SSH安全验证级别
  • 基于口令的安全验证:只要你知道自己的账号和口令,就可以登录到远程主机.所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想要连接的服务器,有可能是冒充的"中间人"
  • 基于密匙的安全验证:
    • 现为自己创建一对密匙,并把公匙放在需要访问的服务器上
    • 客户端软件向服务器发送请求,请求用你的密匙进行安全验证
      -服务器收到请求,在服务器目录下寻找公匙并与你发过来的公匙进行比较.如果公匙相同,服务器就会用公匙加密"质询"并把它发送给客户端软件;
    • 客户端软件受到"质询"之后就可以用私匙解密病把它发送给服务器.

第二种方式可以有效地避免"中间人"攻击方式,相对安全,但是整个登录过程时间比较长,大概要10s左右.

SSH的工作过程

实现SSH安全连接,服务器端和客户端要经理五个阶段:

  • 版本协商阶段:SSH目前有SSH1和SSH2两个版本,双发通过版本协商确定使用的版本.(本阶段服务器会打开22端口,等待客户端连接;本阶段的报文都是通过明文方式传输)
  • 密钥和算法协商阶段:双方根据本端和对端支持的算法,协商最终使用的算法
  • 认证阶段:SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证
  • 会话请求阶段:认证通过后,客户端想服务器端发起会话请求
  • 交互会话阶段:会话请求通过后,服务器端和客户端进行信息的交互.

    why

    传统的网络服务程序,如ftp/pop/telnet在网络传输的时候都会用明文传送口令和数据,所以在本质上都是不安全的.这些服务器的安全验证方式容易受到"中间人"方式的攻击.
    "中间人"攻击方式--即"中间人"冒充真正的服务器接受你发送给服务器的数据,然后再冒充你把数据传给真正的服务器.服务器和你之间的数据传送很容易被中间人做一些手脚.
    而通过使用ssh,你可以吧所有传输的数据进行加密,避免了"中间人"攻击方式以及DNS欺骗和IP欺骗.另外,使用SSH时传输的数据是经过压缩的,所以可以加快传输的速度.

    where

  • 首先,最常见的应用就是通过SSH登录到远方的机器执行你想要进行的工作和命令.(SSH在不安全的网路通讯环境中可以通过很强的验证机制和非常安全的通讯环境.)
  • 其次,通过使用SSH可以本地主机和远程服务器之间是指"加密通道"(SSH的加密通多是通过"端口转发"实现的,你可以在本地端口(没有用到的)和在远程服务器上运行某个服务的端口之间建立"加密通道".然后只要连接到本地端口.所有对本地端口的请求都被SSH加密并且转发到远程服务器的端口.当然只有远程服务器上运行SSH服务器软件的时候"加密通道"才能工作)

    how

    putty WINscp

    结束

    大部分都是在网上其他博文上copy过来的,用作记录用

    原文链接

    http://blog.csdn.net/macrossdzh/article/details/5691924
    http://blog.csdn.net/oncoding/article/details/4365062

最新文章

  1. Linux学习之探索文件系统
  2. AlloyRenderingEngine文本框组件
  3. 基于OWin的Web服务器Katana发布版本3
  4. WebGIS中一种根据网格索引判断点面关系的方法
  5. Python学习总结:目录
  6. 剑指offer--面试题17
  7. Flex 自动获取焦点 监听全局键盘事件
  8. python高级编程之选择好名称:pepe8和命名最佳实践
  9. HTML5 transform三维立方体(随着旋转的效果)
  10. 不想作死系列---virtualbox最小化安装centos6.5
  11. WebViewJavascriptBridge详细使用
  12. Reflux中文教程——概览
  13. 关于XCode9的一些问题
  14. Redis集群分布
  15. React从入门到放弃之前奏(1):webpack4简介
  16. JS----对象的合并与克隆
  17. css之line-height及图片文字垂直居中
  18. xamarin android 文件选择
  19. mini-treeselect的动态赋值
  20. php+mysql 原生事务回滚

热门文章

  1. 插件的理解$.extend()与$.fn.extend()
  2. Java Load Properties 文件,定义message信息
  3. 递归:这帮坑爹的小兔崽子 - 零基础入门学习Python023
  4. openFileDialog与saveFileDialog的使用
  5. position: absolute;绝对定位水平居中问题
  6. PowerShell_零基础自学课程_1_初识PowerShell
  7. mysql命令行的基本用法
  8. 完整的多项匹配tomcat access日志的正则
  9. pl/sql执行动态sql
  10. Palindrome Partitioning 解答