• CentOS 配置集群机器之间SSH免密码登录


    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

    在Hadoop集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的Hadoop集群中NameNode启动的时候会远程执行脚本把集群中DataNode的也一起启动起来。

    这里主要介绍SSH的配置和登录失败的情况

    SSH配置

    集群中的每台主机上打开配置

    sudo vim /etc/ssh/sshd_config

    开启下面的选项

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    生成SSH密钥

    集群中的每台主机上执行下面命令,一路回车,可生成本机的rsa类型的密钥。

    ssh-keygen -t rsa

    执行完之后在~/.ssh/目录下会生成一个保存有公钥的文件:id_rsa.pub

    把公钥写入authorized_keys文件

    把自己的公钥拷贝到集群中的Master机

    ssh-copy-id hadoop@HadoopMaster

    最终在Master机上生成如下的内容的~/.ssh/authorized_keys文件:

     
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArYU2kMXsu75Gzwvuby7OoGzC7GVwxVo+ol/7nJVD    BpKpJLRHRe/d2HSNe9ZZRWLK2tU0e41baMxrYRoAKJA2ujcWfy7t57c3ArO9hA7KJy7MqMiT8WHQ    M3I2Afsx6sVKeQU/czDLXHn+KjwKbR8z0tuycgtxgkaWx1PCpCKeFDAXDVvxYcurSUNaIGL5Egzu    Iy97N52ld/WxUZnRRsTPdpW88JkhWdOV1Bdo4O67rNv5tSYKHXfPwqi8NekqoHIExgVRsHLvM8fe    xvV4mo8lXYdQPRCyrtM9/V+4kSW8eaBO7w6hM9YVZIspSqx0+OqibWTvqSmiAVh0JmUT0MCeVQ==     hadoop@HadoopMaster
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7n27x4qSzRQNGQAL+rT1+91IQnM9cwZYFeSUzrJD    GDfwCTJMKnRBYxrDMxTAM6MKjfwwkPzXnbKHLQnDiJKUSdF8H2xcgDMBJLssVQjOc2jSEg/VppQN    hJwObbIL3k1FbU2KxkOp7yW5PIodZrgUwlH5wdXtfsPKimvv72uA1KUiqPbYA3ZJqXw9Bt87K6Sv    IAkvUjshnfaS+wNEBVwW1dhXyz6DHuY+Tn9330+1oYfdmgSjS4ZqvZVothhhV58DNwzAYwINCpBA    tkjFbk/SOf0q/4rSJRpe2yH9xOuZdwqXMfk3dkp0UFZkV2EVSLyaCNKwTbSuKN75FWhgl8QB7w==     hadoop@HadoopSlave1
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw91O/1NWnbr6/vop+xwnqR/XYNpwkWselzyHNqgD    PYgXXsDHsvOZbpTX7pgOTgVSmlZetCdX4C1lsc/PO8IitvvBS/qWU216lXaqlW61RcliCrYH/RwN    f8XTLx/Ga04w2qEIFlLOiuH6x/KA22muOLYaSIefXv38xj0Hj41iE5ZIseaLuJogn7iqJ6Fq0wQH    i6ueF9BasSWnOHhn6CJamYz3FC9r2m3vwPMkgagPp1FdYyDxodK+MZlwu6TxqP6QQ7BY/Wh5DZK8    C8zpDOZGQgWOrghF58TlZSmJYmukv1NqsY8PCFuoj7vfoUzVKQkyKcEiohwBcTb50vGPl06bMQ==     hadoop@HadoopSlave2
     

    把HadoopMaster的authorized_keys拷贝到HadoopSlave1和HadoopSlave2

    scp ~/.ssh/authorized_keys hadoop@HadoopSlave1:~/.ssh/
    scp ~/.ssh/authorized_keys hadoop@HadoopSlave2:~/.ssh/

    重启SSH服务

    sudo service sshd restart

    测试连接

    ssh HadoopSlave1

    常见免密码登录失败分析

    配置问题

    1. 检查配置文件/etc/ssh/sshd_config是否开启了AuthorizedKeysFile选项
    2. 检查AuthorizedKeysFile选项指定的文件是否存在并内容正常

    目录权限问题

    1. ~权限设置为700
    2. ~/.ssh权限设置为700
    3. ~/.ssh/authorized_keys的权限设置为600
    sudo chmod 700 ~
    sudo chmod 700 ~/.ssh
    sudo chmod 600 ~/.ssh/authorized_keys

    设置完了记得重启ssh服务

    转载请注明出处:http://www.cnblogs.com/keitsi/p/5653520.html

  • 相关阅读:
    想用Nginx代理一切?行!
    [SuProxy]Ngnix+Lua 实现SSH2,LDAP,ORACLE,SQLSERVER等TCP/IP协议分析,劫持,代理,会话及负载
    hive分区表详细介绍
    hive 中自定义UDF函数和自定义UDTF函数
    yarn工作原理
    HDFS小文件问题
    HDFS读写流程
    利用 canvas 实现签名效果
    idea里面自带的翻译插件
    idea的set,get插件
  • 原文地址:https://www.cnblogs.com/chunguang/p/5905922.html
Copyright © 2020-2023  润新知