zoukankan      html  css  js  c++  java
  • SSH免密登陆原理及实现

    声明:作者原创,转载注明出处。

    作者:帅气陈吃苹果

    一、SSH简介

    SSH(Secure Shell)是一种通信加密协议,加密算法包括:RSA、DSA等。

    1. RSA:非对称加密算法,其安全性基于极其困难的大整数的分解(两个素数的乘积);
    1. DSA:也是非对称加密算法,其安全性基于整数有限域离散对数难题;

    二、SSH免密登陆原理

    SSH免密登陆原理

    三、SSH免密登陆

    服务器环境:

    机器 用户名 密码
    master hadoop hadoop
    slave1 hadoop hadoop
    slave2 hadoop hadoop

    1、生成密钥

    分别在master、slave1、slave2机器的用户家目录(/home/hadoop/)下,执行下列命令,通过RSA算法进行加密,提示输入的话可直接回车不输入任何内容:

    ssh-keygen -t rsa
    

    将会在家目录下的隐藏目录/.ssh下生成文件:

    id_rsa.pub	     //公钥	
    id_rsa		     //密钥
    

    2、追加公钥

    在master机器上,将id_rsa.pub的内容写入authorized_keys文件中

    cat id_rsa.pub >> authorized_keys
    

    3、发送其他服务器公钥

    在slave1机器上,将id_rsa.pub复制到master机器的/.ssh目录下,并重新命名位
    id_rsa.pub.slave1

    scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/id_rsa.pub.slave1
    

    在slave2机器上,将id_rsa.pub复制到master机器的/.ssh目录下,并重新命名位id_rsa.pub.slave2

    scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/id_rsa.pub.slave2
    

    4、追加其他服务器公钥

    在master机器上,在/.ssh目录下将看到从slave1、slave2发送过来的文件:

    id_rsa.pub.slave1
    id_rsa.pub.slave2
    

    将这两个公钥内容追加写入到master机器/.ssh目录下的authorized_keys中:

    cat id_rsa.pub.slave1 >> authorized_keys
    cat id_rsa.pub.slave2 >> authorized_keys
    

    5、确认公钥内容

    在master机器上,查看authorized_keys文件内容,确认包含slave1、slave2机器的两个公钥内容:

    cat authorized_keys
    

    6、发送authorized_keys

    在master机器上,将authorized_keys发送到slave1、slave2机器的/.ssh目录下:

    scp authorized_keys hadoop@slave1:/home/hadoop/.ssh/
    scp authorized_keys hadoop@slave2:/home/hadoop/.ssh/
    

    7、修改authorized_keys文件权限

    分别在master、slave1、slave2机器上执行,对auhorized_keys进行权限修改,否则将无法实现免密码登录:

    chmod 600 authorized_keys
    

    8、SSH登陆测试

    在master机器上,从master机器通过ssh登录到slave1,第一次需要密码,退出后以后登录就不需要密码了,其他机器类似操作:

    //登陆slave1
    ssh slave1
    
    //登陆后退出
    exit
    
    //重新登陆
    ssh slave1
    

    参考链接:
    http://blog.csdn.net/zwx19921215/article/details/19641345
    https://www.cnblogs.com/nexiyi/archive/2013/01/06/2847865.html

    最后,欢迎指正。喜欢的话,点个赞呗,请你吃苹果。

  • 相关阅读:
    PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different
    pl sql 无法解析指定的连接标识符
    【转】几个常用的Oracle存储过程
    .NET 条件查询实现--类似网上商城宝贝搜索
    SQL Server 中大小写区分的处理
    .NET DataGrid 导出Excel 无分页
    C# 读书笔记之访问虚方法、重写方法和隐藏方法
    人工智能技术在中小学课堂中的应用
    dzzoffice协同办公平台与onlyoffice在线协作平台安装与部署
    一本通 确定进制
  • 原文地址:https://www.cnblogs.com/sqchen/p/8080949.html
Copyright © 2011-2022 走看看