zoukankan      html  css  js  c++  java
  • SSH(安全协议外壳)介绍及Linux SSH免密登录

    SSH(安全外壳协议)

      SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
      从客户端来看,有两种验证方式:基于密码、基于密钥。

    用户名密码验证方式:

    • (1) 当客户端发起 ssh 请求,服务器会把自己的公钥发送给用户;
    • (2) 用户会根据服务器发来的公钥对密码进行加密;
    • (3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功。

    基于密钥的登录方式:

    • (1) 首先在客户端生成一对密钥(公钥、私钥);
    • (2) 客户端将生成的公钥拷贝到需要访问的服务端机器上;
    • (3) 当客户端再次发送一个连接请求,包括 ip、用户名;
    • (4) 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有相
    • 应的 IP 和用户,就会随机生成一个字符串,例如:qwer;
    • (5) 服务端将使用客户端拷贝过来的公钥对随机字符串 qwer 进行加密,然后
    • 发送给客户端;
    • (6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后
    • 的字符串发送给服务端;
    • (7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果
    • 一致,就允许免密码登录。

     SSH免密登录便是基于秘钥进行登录,从而免去每次连接其他服务器的时候输入密码的情况。

    在三个虚拟机(node-01,node-02,node-03)的基础上进行免密登录的设置:

    1,在node-02上生成秘钥,并保存到文件中(使用ssh-keygen后一直回车到私钥和公钥生成):

    ssh-keygen 

    2,使用ssh-copy-id把公钥发送到三台机器中:(前提是三台机器做了域名映射,不然不能写node-01... 需要写机器的ip)

    ssh-copy-id node-01
    
    ssh-copy-id node-02
    
    ssh-copy-id node-03

     

    由于是在node-02上生成的秘钥,并保存到node-02上,所以现在从node-02上登录其他两台机器就可以实现免密登录了:

    可以看到我们可以在node-02上直接连接node-03了。

  • 相关阅读:
    python处理中文字符的一点经验
    15个最受欢迎的Python开源框架
    一道有趣的面试题——扔鸡蛋问题
    归并排序算法学习笔记
    快速排序算法学习笔记
    python遇到‘u’开头的unicode编码
    工程实践中最常用的数据结构与算法
    OCR与车牌识别相关
    基于暗通道评估可见度流程
    Git操作
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9356090.html
Copyright © 2011-2022 走看看