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/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文件中就有了三个公共密钥了 
    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(这时候你就可以不用输入密码,直接登入)

猜你喜欢

转载自blog.csdn.net/zycxnanwang/article/details/82559351