• SSH命令原理探究


    SSH命令探究:
     
    之前连接远程主机时,记得使用过SSH,但当时只是跟着教程走了一遍,并没有去了解其真正的工作原理。借着这次机会探究一下SSH到底是如何工作的。


     
    • 之前连接云主机过程:
    ssh 用户名@服务器IP
    之后给出了主机的椭圆曲线加密的公钥的SHA-256的哈希值,自己可以用SHA-256验证其hash值是否正确。然后再输入密码去连接。
    登录了之后便可以操作远程主机啦。比如为其安装程序等等之类。

     
    • 原理:
    之前登录时也有提示:
    The authenticity of host  ***.***.***.***can't be established.
    RSA key fingerprint is 256位的数字。
    Are you sure you want to continue connecting (yes/no)?
    联想到之前郭燕老师的区块链技术中讲述的非对称加密算法中的RSA。考虑:我这是自己的云主机又不是网站没有CA签名的数字证书,怎么保证身份验证呢? ——————————>SSH是如何避免中间人攻击呢?

     
    • 解释为什么会有中间人攻击:
    RSA算法工作流程:
    1.客户端与服务器协商一个用来加密的数字。——————————>攻击者可冒充服务器与客户端建立连接,再冒充客户端与服务器进行连接。
    2.各自再选择一个私钥并与协商的公钥一起计算得到各自的值。
    3.再把该值发送给对方
    4.服务器与客户端再拿着对方发来的值与自己的私钥计算便得到了公共的私钥。之后可以使用它来加密信息。

    • 接着怎么避免中间人攻击呢?
    答案远在天边近在眼前。第一次登录时的信息不就是给我了RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. 吗? 查询得知是对RSApublickey进行了SHA-256. 原来要手动自己验证啊。怪不得要提示我!
     
    • 之后就是验证过程了。
    root@tlxclmm:~# ll /etc/ssh
    total 588
    drwxr-xr-x  2 root root   4096 Nov 24 03:00 ./
    drwxr-xr-x 92 root root   4096 Nov 24 03:06 ../
    -rw-r--r--  1 root root 553122 Mar  4  2019 moduli
    -rw-r--r--  1 root root   1580 Mar  4  2019 ssh_config
    -rw-r--r--  1 root root   3249 Oct 10 06:32 sshd_config
    -rw-------  1 root root    227 Nov 24 03:00 ssh_host_ecdsa_key
    -rw-r--r--  1 root root    172 Nov 24 03:00 ssh_host_ecdsa_key.pub
    -rw-------  1 root root    399 Nov 24 03:00 ssh_host_ed25519_key
    -rw-r--r--  1 root root     92 Nov 24 03:00 ssh_host_ed25519_key.pub
    -rw-------  1 root root   1679 Nov 24 03:00 ssh_host_rsa_key
    -rw-r--r--  1 root root    392 Nov 24 03:00 ssh_host_rsa_key.pub
    -rw-r--r--  1 root root    338 Oct 10 06:31 ssh_import_id
    就在其中,然而并不是第一次登陆,就没有对比了。 ——————>经过查询确实是这样来防止中间人攻击的。
     
                                                                                                                                                                      水平有限,请批评指正。
  • 相关阅读:
    Mvc请求管道中的19个事件
    asp.net 验证正则表达式
    Asp.net MVC进入请求管道的过程
    MVC(二)
    Aspect Oriented Programming (AOP)
    在C#中??和?分别是什么意思?
    MVC(一)
    ASP.NET 管道事件与HttpModule, HttpHandler简单理解
    Entity Framework && Lambda
    扩展类和扩展方法
  • 原文地址:https://www.cnblogs.com/tlxclmm/p/11953409.html
Copyright © 2020-2023  润新知