zoukankan      html  css  js  c++  java
  • SSH应用

       SSH(Secure Shell)可以通过RSA公钥加密算法,进行安全的远程登陆和远程操作。使用SSH,登陆的账号/密码以及命令都是经过加密的传输的,从而保证在传输过程中不会被hacker或者eavesdropper窃取信息。


    1. SSH 登陆原理

    理解SSH的加密原理要对公钥和私钥有一定的了解,在SSH信息传递过程中公钥为加密秘钥,私钥为解密秘钥

    例子:Client用SSH登陆Server,命令"ssh root@10.204.176.2" (假设Server的IP为10.204.176.2),过程如下,

    (1)Client连接Server

    (2)Server返回一个公钥(Public Key)给Client

    (3)Client用Server返回的公钥对用户的账号和密码进行加密,并发送给Server

    (4)Server接收到Client发送的加密后的账号和密码信息,用私钥(Privacy Key)进行解密,验证成功


    有兴趣的同学可以再研究下数字签名技术,其使用加密秘钥作为私钥,解密秘钥作为公钥。


    2. SSH known_hosts文件

    known_hosts文件用来记录连接过的Server所发送的公钥信息,为什么要将Server发送过来的公钥记录保留在文件中呢?

    这种做法可以尽量的避免中间人攻击(Man-in-the-middle attack)。中间人攻击:如果存在一个hacker获取到Client发送的SSH登陆请求后,伪造一个包含公钥的数据包发送给Client,Client将用hacker发送的公钥对账号/密码进行加密后,发送给Hacker所用的主机,由此Hacker变获得了Client欲登陆的Server的账号和密码。

    known_hosts文件记录了原先Client登陆Server时,Server发送给Client的公钥信息,在下一次登陆Server的时候,会将Server这次返回的公钥和known_hosts里面记录的公钥进行比对,如果不同,则会给出如下图提示信息,给用户给出警告:


    注意上图中显示的"ff:cc....9e:70"并不是公钥,而是公钥的md5值。因为公钥比较长,通过known_hosts中Server的公钥的md5值与Server刚返回的公钥的Md5进行比较,则可以确定两个公钥是否一致。

    当然如果你确定Server没有问题,可以删除掉known_hosts文件(一般在~/.ssh/目录下)里Server ip对应的那一行信息,则可以成功SSH登陆到Server。


    3. SSH 实现无密码登陆

    SSH也提供了基于秘钥的安全验证,该方法不需要Client输入登陆的账号和密码。其原理如下:

    (1)Client使用命令"ssh-keygen -t rsa"产生一对公钥和私钥(Key Pair),公钥:~/.ssh/id_rsa.pub, 私钥:~/.ssh/id_rsa。

    (2)将id_rsa.pub里面的公钥添加进Server:~/.ssh/authorized_keys 文件中

    (3)Client SSH登陆Server,连接Server

    (4)Server产生一个随机数并且用原先Client给予的公钥进行加密,发送给Client

    (5)Client接收到Server的反馈的加密后的随机数信息,用私钥解密,并将解密后的结果发送给Server

    (6)Server将Client解密的信息与原先产生的随机数进行比对,如果相同,则验证成功


    4. 多个Client,采用相同的公钥和私钥对

    项目中一台物理机中安装多了多台Linux系统,并且每一个Linux系统配置了相同的静态IP,并且Server要免密码的登陆每一个Client。

    解决方法,只需要将相同的公钥和私钥对拷贝到每一个Client:~/.ssh/ 目录下,并且将公钥添加进Sever:~/.ssh/authorized_keys文件中即可。

  • 相关阅读:
    [POJ 1050]To the Max
    P1678 烦恼的高考志愿
    P1873 砍树
    P1102 A-B 数对
    P6771 [USACO05MAR]Space Elevator 太空电梯
    P2347 砝码称重
    P1832 A+B Problem(再升级)
    P1679 神奇的四次方数
    P1877 [HAOI2012]音量调节
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3131102.html
Copyright © 2011-2022 走看看