• SSH协议详解


    简介

    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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    wifi热点
    【WIN7】windowssystem32 下的几乎所有文件的简单说明【2】
    clipbrd剪切板查看器
    【WIN7】windowssystem32 下的几乎所有文件的简单说明【1】
    Host
    ReadyBoost
    在U盘上安装Damn Small Linux
    readonly、disabled、display、visible的区别
    VS2010中安装AjaxControlToolkit
    读取文件夹列表、删除文件夹及文件夹中的内容
  • 原文地址:https://www.cnblogs.com/ricksteves/p/10263440.html
Copyright © 2020-2023  润新知