配置集群模式下的ssh免密码登录

在使用hadoop配置集群模式时,必然要使用ssh进行各个机器之间的免密码登录。

环境准备:

  集群模式下会有多个主机,而本教程使用的主机名和IP地址如下:

192.168.1.160    master
192.168.1.161    slave1

一、安装ssh服务:

  若系统中没有安装ssh服务,则要在每台机器中都安装ssh服务

  redhat,fedora,centos等系列linux发行版,命令如下:

sudo yum install sshd

  debian,ubuntu,linux mint等系列的linux发行版,命令如下:

sudo apt-get install sshd

  按照提示安装之后,需要开启ssh服务

sudo service sshd start

  查看ssh服务状态

sudo service sshd status

二、生成公钥和私钥

  本节中需要使用ssh中的两个命令:ssh-keygen  产生公钥与私钥对,ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中

  首先修改hosts文件,vi /etc/hosts,如下:

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.160 master
192.168.1.161 slave1

  登录master,使用rsa算法生成公钥和私钥:

ssh-keygen -t rsa 

  进入~/.ssh目录,可看到已经生成私钥id_rsa,公钥id_rsa.pub

cd ~/.ssh
id_rsa  id_rsa.pub 

三、对其他用户进行授权  

  新建authorized_keys文件,将master的公钥id_rsa.pub内容追加到authorized_keys文件中,注意是追加,而不是覆盖

cat id_rsa.pub >> authorized_keys

  使用ssh登录master时,只要authorized_keys文件中保存有master的公钥信息,即可实现免密登录。同理,登录salve1时也需要authorized_keys文件中有slave1的公钥信息。

  登录slave1,同样使用ssh-keygen产生公钥和私钥对,使用ssh-copy-id将slave的公钥追加到master的authorized_keys文件中

ssh-copy-id -i master  #将slave的公钥追加到master的authorized_keys文件中

  登录master,将authorized_keys文件拷贝到slave1上,命令如下:

scp ~/.ssh/authorized_keys slave1:~/.ssh/ #拷贝到slave1上,需要输入用户名和密码
posted @ 2019-01-03 19:59  头发马上掉光光  阅读(555)  评论(0编辑  收藏  举报