linux搭建hadoop环境时,实现linux集群间免密钥登陆

来源:互联网 发布:java hash算法原理 编辑:程序博客网 时间:2024/06/16 18:56

  在搭建hadoop环境时,要实现机器间的免登入,我通过网上查资料,差不多熟悉了实现的方法,所以整理一下

 避免自己忘记,也给别人一个参考!

 三台机器的属性:

   name:master      ip:192.168.234.12     operatesystem:centos 6.3    主节点

   name:slave1      ip:192.168.234.13     operatesystem:centos 6.3    子节点1

   name:slave2      ip:192.168.234.14     operatesystem:centos 6.3    子节点2

  三个机器的hadoop用户都为learn,即三台机器操作环境为learn用户

 

 操作前修改一下/etc/hosts文件,将这三个ip都添加进去(三台机器都需要进行这个步骤)

   命令:vi   /etc/hosts

   将一下内容添加进去:

      192.168.234.12  master

      192.168.234.13  slave1

     192.168.234.14  slave2 

 (千万别写错,如果写错,以后的操作会报错)


第一步:

   首先在各个机器中生成id_dsa.pub

   在各个机器中输入以下命令

   ssh-keygen -t  rsa               :生成公共密钥

   之后按三次回车就可以了,

   你查看/home/learn/.ssh目录就会发现多了两个文件,分别为id_rsa, id_rsa.pub


   再将目录中的id_dsa.pub,复制一份并改名为authorized_keys(每台机器都需要)

    命令:cp  /home/learn/.ssh/id_rsa.pub    /home/learn/.ssh/authorized_keys


第二步:

  将slave1节点和slave2节点的authorized_keys 追加到master的authorized_keys

  换句话说就是,将slave1和slave2的authorized_keys里的东西复制粘贴到master的authorized_keys

  master的authorized_keys就有了三个公共密钥

   具体的操作命令:scp  /home/learn/.ssh/authorized_keys  learn@192.168.234.12:/home/learn/authorized_keys1(在节点1的操作)

 scp  /home/learn/.ssh/authorized_keys  learn@192.168.234.12:/home/learn/authorized_keys2(在节点2的操作)

之后你就会发现master的/home/learn/.ssh目录多了两个来自节点1和节点2的公共密钥

   在master上的操作:

   cat  /home/learn/.ssh/authorized_keys1  /home/learn/.ssh/authorized_keys

   cat  /home/learn/.ssh/authorized_keys2  /home/learn/.ssh/authorized_keys

  执行之后master的authorized_keys文件中就有了三个公共密钥了

 

  第三步:

  用master上的/home/learn/.ssh/authorized_keys替换节点1,节点2的authorized_keys文件

 在master上的操作 

 scp  /home/learn/.ssh/authorized_keys learn@192.168.234.13:/home/learn/.ssh/authorized_keys(替换节点1)

scp  /home/learn/.ssh/authorized_keys learn@192.168.234.14:/home/learn/.ssh/authorized_keys(替换节点2)


第四步:

    通过前面的三步你发现,并不能免密码登入,这时候就需要第四步,改权限

      对三台机器都使用下面的命令:

       chmod 600   /home/learn/.ssh/authorized_keys (必须在root用户上进行)


 检验:ssh  192.168.234.13  (我用的是远程登入工具,在master内的操作)

            ssh  192.168.234.14 (这时候你就可以不用输入密码,直接登入)

0 0
原创粉丝点击