unix设置master和slaver之间无密码访问 ssh

3台机器系统都为asiaunx :

master(192.168.0.210)

slave1(192.168.0.211)

slave2(192.168.0.212)

1、分别设置master/slaver1/slaver2的主机名,即修改/etc/sysconfig/network,添加以下内容:

HOSTNAME=

其中在各台机器上分别设为master/slaver1/slaver2

2.在master/slaver1/slaver2上修改/etc/hosts,添加以下内容:

192.168.0.210  master
192.168.0.211  slaver1
192.168.0.212  slaver2

3.用root登陆,建立hadoop用户
useradd hadoop
passwd hadoop
输入 123456做为密码

4.设置master和各slaver之间无密码访问ssh:

先分别在各台机器上执行如下命令:
  su - hadoop       #进入hadoop用户目录
  ssh-keygen -t rsa #建立ssh目录,敲回车到底,这样会创建.ssh目录,在该目录下会创建两个文件:id_rsa和id_rsa.pub,即公钥和私钥文件。
  cd .ssh

然后在master上执行如下指令:
  scp -r id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/authorized_keys_m    #将master上的密钥传到slave1的hadoop用户下,重命名为authorized_keys_m
  scp -r id_rsa.pub hadoop@slave2:/home/hadoop/.ssh/authorized_keys_m    #将master上的密钥传到slave2的hadoop用户下,重命名为authorized_keys_m

用hadoop用户进入slave1,执行如下指令
  scp -r id_rsa.pub hadoop@master:/home/hadoop/.ssh/authorized_keys_s1 #将slave1上的密钥传到master的hadoop用户下

用hadoop用户进入slave2,执行如下指令
  scp -r id_rsa.pub hadoop@master:/home/hadoop/.ssh/authorized_keys_s2   #将slave2上的密钥传到master的hadoop用户下

在maste上执行以下操作:
  cat id_rsa.pub >> authorized_keys          #将本地密钥添加authorized_keys
  cat authorized_keys_s1 >> authorized_keys  #将slaver1的公钥添加authorized_keys
  cat authorized_keys_s2>> authorized_keys   #将slaver2的公钥添加authorized_keys

在slaver1上执行以下操作:
  cat id_rsa.pub >> authorized_keys          #将本地密钥添加authorized_keys
  cat authorized_keys_m >> authorized_keys  #将master的公钥添加authorized_keys

在slaver2上执行以下操作:
  cat id_rsa.pub >> authorized_keys          #将本地密钥添加authorized_keys
  cat authorized_keys_m >> authorized_keys   #将master的公钥添加authorized_keys

 

master和slaver1 slaver2下执行:

chmod go-rwx authorized_keys

这样主节点和从节点之间就可以不用密码直接ssh访问

你可能感兴趣的:(linux)