• hadoop再次集群搭建(2)-配置免秘钥ssh登录


    SSH对于大多程序员都不陌生,目前主流的云服务提供上也是通过SSH来提供链接的安全保障,比如AWS通过使用下载的私钥(private key)实现与EC2实例安全连接、GitHub通过上传的公钥(public key)实现基于git协议(底层使用SSH)远程库管理。

    SSH(Secure Shell)是一个提供数据通信安全、远程登录、远程指令执行等功能的安全网络协议,由芬兰赫尔辛基大学研究员Tatu Ylönen,于1995年提出,其目的是用于替代非安全的Telnet、rsh、rexec等远程Shell协议。之后SSH发展了两个大版本SSH-1和SSH-2。

    从客户端来看,SSH提供两种级别的安全验证。

    第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

    第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

    用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。


    有关详细的介绍,可以参考wiki:https://en.wikipedia.org/wiki/Secure_Shell

    我们这里需要对第二种进行配置。

    1. 免秘钥
    创建hadoop用户和用户组,
    节点名称 IP1 IP2 备注
    node1.com 192.168.122.128 动态联网 root/123456  hadoop/hadoop
    node2.com 192.168.122.129 动态联网 root/123456  hadoop/hadoop
    node3.com 192.168.122.130 动态联网 root/123456  hadoop/hadoop


    使用hadoop用户,命令如下
    ssh-keygen -t rsa  生成rsa加密的密钥

    cp id_rsa.pub authorized_keys             copy文件
    cat id_rsa.pub>>authorized_keys 将其他的秘钥追加到这一个文件中,然后分发给所有机器

    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxOUxs3C8xul4iqadE5nfEG8+9lURvGk8o7Z1Ef1cZ3PJBXPPi7/zNUxiL2iD93SMHMwmN6ZaUy9myLCPmyA1oCpOyjzyBQQv0ONk2QkWNytvYaF4KQx3OjF3L1o/YwAbppMzuofX+iBT36IYeRuF/86w6VwRtfCQ/8s6+h84RCAwhdLtopksrtY3v/03UMFaZ1F/GTmQeralSQWuhSbLXgYEhqoPr+AhI/B04PvJA3Q1HTxKMKqll3GmzmvGxhWWpYmKDAJvgnJ5C3jpUMl7NSVMbz0mwzdqk8ao+lt1KYoyl9mwbbs0Al57MyfgftZdttnK1wsVAYnKlFyYJZinGw== hadoop@node1.com
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzABdw8P91Ohgobpacj/OpTtt4WHdJrzVQPalUMAZUHoLZSfqtfqSVljpMhD8NmxYh2rHGLivA/pyLIrqEbTshkIyu1vlEDARry5cH02zv5xRQy1/npcLkdKOQbMvecbIO+wginFnedPBTs3Xw0J2XZZJf6G9ySLe2WQt4JW31QordOjfO2ZhQFYHB7icu22ReLB2unBfK9oyc2F+pbTENpe5/Ka5s0qMcX1d0XyVWqUo5F6cnrX/JoQ8xveO+DXJxGMvOZHQJPkfID8KT4mbZ7/kfo5ap9UH5AO4H6Sx9o8pMvZOid0m0kfdmiJ1PgS5kQiJxD1ITSQ7WNCglNTbWQ== hadoop@node2.com
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6jde660wUazvvRmld6eTD0gFpxIUMvn6eBv8KftjSPfN5KYRq3CugcAUyghq5GRkIyikbLugTzm2WiR3fAZEqZtDtGZk/s+CsryOfwrgrpyWsjU1ZScuKJtKXuo3ZlNB4FrpvxM1xJMd5A2lN3EDDi0JbkyDTajrEQb4+hNwQR+wv11EnjmPAPEJ5FCgM7JfyNC1hqzuht1MwCPyLNekwIuB+hgQaOh81WSY/U52DfKsvDQc0LeEaXxuEfSCFQYjY9VGDO92sHe0dUkGdmjxFiEd5JRObxnQQTMn9rHEcT9iTjruzAi811d3ropvkaGad4JjuJ49LCmmm/WcsmZlEw== hadoop@node3.com


    这样所有的机器都有一份授权的key,每一个机器访问的时候保证这台机器上的authorized_keys 里面有访问者的pub key,通过验证。

    接下来配置所有的hosts文件
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.122.128 node1.com
    192.168.122.169 node2.com
    192.168.122.130 node3.com

    使用ssh测试,如果失败:
    情况1: authorized_keys 权限过高:
    chmod 600 authorized_keys
    情况2: sshd_config

    配置成功之后:

    Charles 于2015-12-17 Phnom Penh




    版权说明:
    本文由Charles Dong原创,本人支持开源以及免费有益的传播,反对商业化谋利。
    CSDN博客:http://blog.csdn.net/mrcharles
    个人站:http://blog.xingbod.cn
    EMAIL:charles@xingbod.cn
  • 相关阅读:
    PHP 批量生成静态文件目录代码
    PHP 导出Excel 文档
    Samba Server 配置
    PHP curl超时问题
    php ci 2.0框架 ORM
    YII 的基本CURL操作
    PHP 操作socket 实现简易聊天室
    PHP simplexml_load_string 过滤<![CDATA[XXXX]]>
    PHP 获取当天 凌晨 时间戳常用代码
    2019年值得你使用的20大开发工具
  • 原文地址:https://www.cnblogs.com/mrcharles/p/5055008.html
Copyright © 2020-2023  润新知