• Hadoop 集群配置免密 SSH 登录


    Hadoop 集群包含 1 个主节点和 3 个从节点,需要实现各节点之间的免密码登录

    Hadoop集群环境
    节点名称 节点IP
    node-01 192.168.229.21
    node-02 192.168.229.22
    node-03 192.168.229.23
    node-04 192.168.229.24
    免密登录原理

    每台主机authorized_keys文件里面包含的主机(ssh密钥),该主机都能无密码登录,所以只要每台主机的authorized_keys文件里面都放入其他主机(需要无密码登录的主机)的 ssh 密钥即可

    实现步骤

    1、每个节点生成 ssh 密钥

    [root@node-01 ~]# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    .....................
    
    [root@node-01 .ssh]# ls
    id_rsa  id_rsa.pub
    
    [root@node-02 ~]# ssh-keygen -t rsa
    [root@node-03 ~]# ssh-keygen -t rsa
    [root@node-04 ~]# ssh-keygen -t rsa
    

    执行命令后会在 ~ 目录下生成 .ssh 文件夹,里面包含 id_rsa(私钥) 和 id_rsa.pub(公钥) 两个文件

    2、在主节点上将公钥拷到一个授权文件 authorized_keys 中

    [root@node-01 ~]# cd .ssh
    [root@node-01 .ssh]# ls
    id_rsa  id_rsa.pub
    [root@node-01 .ssh]# cp id_rsa.pub authorized_keys
    [root@node-01 .ssh]# ls
    authorized_keys  id_rsa  id_rsa.pub
    

    3、将 authorized_keys 文件拷到下一个节点,并将该节点的 ssh 密钥 id_rsa.pub 加入该文件中

    #在 node-01 上使用 scp 命令实现远程文件拷贝
    [root@node-01 .ssh]# scp authorized_keys root@node-02:/root/.ssh/
    The authenticity of host 'node-02 (192.168.229.22)' can't be established.
    ECDSA key fingerprint is SHA256:MyB1zs0E3J/fm8pC0AN8ycsgEIBNHtUqd9xS0WAyv3s.
    ECDSA key fingerprint is MD5:88:48:3a:ba:3e:14:a7:d7:86:f6:51:74:00:10:f9:00.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'node-02,192.168.229.22' (ECDSA) to the list of known hosts.
    root@node-02's password: 
    authorized_keys                                                                100%  395   306.2KB/s   00:00    
    
    # 登录 node-02 主机
    [root@node-02 ~]# cd .ssh/
    [root@node-02 .ssh]# ls 
    authorized_keys  id_rsa  id_rsa.pub
    # 使用 cat 追加方式将 id_rsa.pub 文件内容添加到 authorized_keys 中
    [root@node-02 .ssh]# cat id_rsa.pub >> authorized_keys
    

    4、 重复第 3 步的操作,依次将 node-03、node-04 节点的 ssh 密钥加入到 authorized_keys 文件中,并将 node-04 节点生成的authorized_keys 文件拷贝到其他三个节点(node-01、node-02、node-03)即可

    #登录 node-03 主机,将 ssh 密钥加入 authorized_keys 文件中
    [root@node-03 .ssh]# cat id_rsa.pub >> authorized_keys 
    [root@node-03 .ssh]# scp authorized_keys root@node-04:/root/.ssh/
    
    #登录 node-04 主机,将 ssh 密钥加入 authorized_keys 文件中
    [root@node-04 .ssh]# cat id_rsa.pub >> authorized_keys 
    
    #将最后生成的 authorized_keys 文件分别拷贝到 node-01、node-02 和 node-03 中
    [root@node-04 .ssh]# scp authorized_keys root@node-01:/root/.ssh/
    [root@node-04 .ssh]# scp authorized_keys root@node-02:/root/.ssh/
    [root@node-04 .ssh]# scp authorized_keys root@node-03:/root/.ssh/
    

    5、验证免密登录

    使用 ssh 用户名@节点名或 ssh ip 地址命令验证免密码登录

    [root@node-01 .ssh]# ssh root@node-02
    [root@node-02 .ssh]# ssh root@node-01
    [root@node-03 .ssh]# ssh root@node-04
    [root@node-04 .ssh]# ssh root@node-03
    
    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    Java基础(十四)——API(Calendar类、System类、StringBuilder类、包装类)
    异常
    Java基础(十三)——权限修饰符和内部类
    知识点总结
    Java基础(十二)— —多态
    Java基础(十一)— —继承、抽象类和接口
    java基础(十)——继承
    小程序外部向组件内部传递externalClasses -- 传入样式wxss
    小程序组件交互 -- 传入js
    promise封装小程序的请求类(request,清爽易懂)
  • 原文地址:https://www.cnblogs.com/binbingg/p/15425228.html
Copyright © 2020-2023  润新知