• [靠谱原创!] SSH免密登录设置----原理详解+具体操作(全国人民看完都懂了!)


      首先介绍一下SSH:

      

      当我们用一台服务器登录另一台服务器可直接使用SSH协议进行登陆

    //具体格式:
    //        ssh  [用户名]@[IP]
    
    ssh wdy@192.168.33.12

      也可以直接远程传送文件到另一台服务器,具体格式如下:

    //具体格式:
    //            scp [文件名] [目标服务器用户名]@[目标服务器IP] : [目标复制位置]
    
    scp test.txt root@192.168.33.12:/home

      

      注意:以上操作方法存在弊端,每次操作都需要输入目标服务器的密码,不适合集群服务器的批量操作。所以一般我们会用SSH的第二种身份验证机制:密钥验证。验证流程如下图:

      即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys)。当有服务器带着公钥申请连接服务器时,目标服务器首先在authorized_keys中查找是否存在该公钥,如果存在则开始进行验证。首先生成一个随机字符串,利用对应公钥进行加密,然后返回给申请连接的服务器,申请连接服务器利用私钥进行解密,再将字符串返回给目标服务器完成验证,进行后续操作。

      首先在源服务器上生成公钥和密钥:

    //具体格式:
    //    其中  -t  [加密方式]        
                    ssh-keygen -t rsa
    //默认会在 /root/.ssh/ 重生成公钥和密钥  id_rsa   id_rsa.pub

      如下图:

      接下来我们需要将源服务器生成的公钥拷贝到目标服务器中并添加至authorized_keys列表中,这两步可以使用一个简便命令进行执行:

    //将公钥添加至目标服务器的authorized_keys列表中
    //具体格式:
    //            ssh-copy-id [目标服务器IP]
        ssh-copy-id 192.168.33.12

      截图如下:

      我们在目标服务器的 /root/.ssh 文件夹中查看授权列表authorized_keys发现原服务器的公钥已经添加进去:

     

      至此我们已经完成了SSH免密登录的设置,可以再源服务器上进行登录验证,已经不需要再输入密码:

      同样我们可以在目标服务器上进行同样的设置使两台服务器相互免密登录。

  • 相关阅读:
    小端字节序与大端字节序
    V8引擎的垃圾回收策略
    TTL 和 DNS TTL 的区别
    详解 undefined 与 null 的区别
    Node.js 事件循环机制
    requestAnimationFrame 知多少?
    Web前端知识体系精简
    Vue.js 和 MVVM 小细节
    使用 Node.js 搭建 Web 服务器
    H5单页面手势滑屏切换原理
  • 原文地址:https://www.cnblogs.com/wangdy0707/p/9080021.html
Copyright © 2020-2023  润新知