转载

Linux间实现ssh免密登入

Linux间实现ssh免密登入

在搭建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 
    #千万别写错,如果写错,以后的操作会报错
    
  1. 第一步

    • 首先在各个机器中生成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
  2. 第二步:

    • 将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/.ssh/authorized_keys1
    #在节点1的操作
    
    scp  /home/learn/.ssh/authorized_keys  learn@192.168.234.12:/home/learn/.ssh/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文件中就有了三个公共密钥了 
      
  3. 第三步:

    • 用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
    
  4. 第四步:

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

    • 对三台机器都使用下面的命令:
      chmod 600 /home/learn/.ssh/authorized_keys 必须拥有root权限

  5. 检验:ssh 192.168.234.13 (我用的是远程登入工具,在master内的操作)
    ssh 192.168.234.14(这时候你就可以不用输入密码,直接登入)

正文到此结束
本文目录