zoukankan      html  css  js  c++  java
  • ssh 登陆服务器原理

    这里分两种情况,这两种情况都涉及到公钥加密的概念。

    由于公钥加密概念作为基础就不在本文进行讨论了。

    使用ssh对远程服务器进行密码登录发生了什么:

    客户端通过ssh连接服务器

    1. 首先服务器把自己的公钥发给客户端,客户端将自己的登录密码通过服务器发给自己的公钥进行加密。然后发送给服务器。

    2. 服务器通过自己的私钥解密客户端发上来的用公钥加密的密码进行核对,如果正确就成功连接。

    这个其实还挺好理解,而且为了防止中间人攻击,ssh在第一次连接的时候会提醒客户端这边,收到的服务器的公钥的hash值。拿到这个我们可以去和我们需要连接服务器的公钥对比,以确认身份。

    客户端免密连接服务器

    这是通常我们登录服务器使用的方法,而且不需要知道账户的密码。只需要将自己连接机器的公钥传到服务器就行了。流程如下

    1. 客户端向服务器端发起链接。

    2. 服务器端用客户端存在服务器的公钥加密一个256bit随机串发给客户端。

    3. 客户端用私钥解密这个随机串然后和当前的session identifier HASH生成md5值发给server发给服务器。

    4. server重新计算md5值,跟client进行比较,如果成功就链接登录。

  • 相关阅读:
    Kotlin之类属性延迟初始化
    Android 之ANR
    Android之Handler基础篇
    Android Handler进阶篇
    Android 进程与线程管理
    Android 启动模式LaunchMode详解(LaunchMode四种模式详解)
    Android 应用版本号配置修改
    Android ViewGroup
    Android app与Activity主题配置
    Android 本地序列化
  • 原文地址:https://www.cnblogs.com/piperck/p/6945197.html
Copyright © 2011-2022 走看看