配置hadoop各个节点之间免密码登录实践笔记

原创 2015年11月17日 21:12:36
前言:
         

最近在搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录。

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用了。

       " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。


0-我们需要为每一台机器编辑hosts文件使主机名和主机ip映射关联起来 :vi /etc/hosts-->在里面添加所有节点的ip  主机名,类似如下格式:
                172.18.1.244    server244
                172.18.1.246    server246
                172.18.1.249    server249  
添加完成后,再加上实现ssh免密码登录后就会在用户主目录下的.ssh文件夹下生成一个known_hosts文件
    
1-实现ssh免密码登陆之前首先得要保证你的电脑安装了ssh及sshd,并且确认本机sshd的配置文件(需要root权限),我们先来编辑vi /etc/ssh/sshd_config,

找到以下内容,并去掉注释符”#“

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys

 如果修改了sshd配置文件需要重启sshd服务 (需要root权限):在centos7之前可以通过service sshd restart重启,但是在centos7版本以上的输入service sshd restart它会重定向到一个新的命令,我们复制重定向的命令执行即可达到sshd重启的目的。

2-配置SSH的无密码登录可以首先新建专用用户hadoop进行操作,在此我们为每一个节点新建相同的hadoop用户,执行新建用户命令:adduser hadoop,接着为hadoop用户设置密码 passwd hadoop回车输入密码即可。

3-接着我们以hadoop用户身份登录:su hadoop,进入hadoop的家目录 cd /home/hadoop,输入:ssh-keygen -t rsa -P '',回车,会提示你保存生成的密码的位置,回车的话默认保存在当前目录下的.ssh文件夹下面,这样/home/hadoop/.ssh文件夹下面就有id_rsa和id_pub2个文件,然后我们把id_rsa.pub这个公钥文件追加到authorized_keys文件中。

解释一下,第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用‘‘空字符串表示无密码。

第二条命令将生成的密钥写入authorized_keys文件。

这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机(如果还是提示要输入密码则执行修改文件authorized_keys的权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能 ):

修改authorized_keys文件权限的命令是: chmod 600 ~/.ssh/authorized_keys
)。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。拷贝的命令如下:

scp authorized_keys hadoop@172.18.1.246:/home/hadoop/.ssh  

正常情况下上面几步执行完成后,从主机A所在机器向主机A、主机B所在机器发起ssh连接,只有在第一次登录时需要输入密码,以后则不需要。

此时,只是实现了某一个节点登录自己和其他节点免密码,我们还需要以同样的方式实现其他的节点登录其它节点,就如同刚刚我们为这个节点设置的那样,也就是我们需要为其他节点生成公钥和私钥,然后把公钥保存(其实是追加)在authorized_keys文件中,接着把这个authorized_keys文件scp拷贝到其他所有节点,这样所有节点之间都可以实现和其他节点免密码登录,包括登录自己。


linux下多个节点ssh互相免密码连接详解

ssh配置详解;; 操作环境:Ubuntu server 14.04  1到3每台机器都做一遍,4以后选择一台做 1.系统已经自带openssh了。如若没有请sudo apt-get i...

ubuntu 中ssh无密码配置 ,hadoop节点之间无密码登录

 今天在搭建hadoop环境配置的时候,需要ssh无密码登录,费了九牛二虎之力,终于搞定了。  首先,不同的linux操作系统,可能之间的命令有一些少许的不同,我的操作系统是ubuntu,所以把我所搞...

centos7下调试集群三台机器实现免密登陆--hadoop安装系列之一

一、实验目标 安装三台centos7虚拟机,组建hadoop实验集群,centos是从centos7官网下载的最新版本,默认系统安装,创建hadoop用户组,新建用户hadoop并加入hadoop组。...

hadoop设置ssh免密码登录

对于需要远程管理其它机器,一般使用远程桌面或者telnet。linux一般只能是telnet。但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问。为 解决这个问题,推出了通信加密通信协...

hadoop学习笔记(五)——全分布模式下SSH免密码登陆的实现

因为三个节点要相互访问,所以,三个节点都是客户端,也都是服务器端,我们分别在三个节点上创建一对密钥文件,密钥文件包括公钥文件(~/.ssh/id_rsa.pub)和私钥文件 (~/.ssh/id_rs...

【hadoop】ssh localhost 免密码登陆(图解)

每次搞ssh locahost无密码登陆都要查半天,这次记录一下,以备不时之需 假设系统中有用户test,属于用户组test, 1. 首先确认能否不输入口令就用ssh登录localhost: ...

Hadoop集群搭建之SSH无密码登录配置

一、准备工作 1) 用客户端工具(ssh client或者putty)连接到linux服务器。在root用户下输入命令: vi /etc/hosts ,用vi编辑hosts文件,如下: #12...

【hadoop之翊】——hadoop配置ssh免密码登录,解决ssh设置好了依然需要输入密码的问题

首先确定系统是否安装了ssh服务,如果没有则可以使用yum进行安装,参照前面关于yum使用的文章。 1、使用以下命令进行查看: ssh -version 2、查看用户主目录下是否有.ssh文件夹(...

linux下多节点之间免密钥访问

说明: 目前安装了4个Redhat linux操作系统,主机名分别为hadoop01,hadoop02,hadoop03,hadoop04 其中hadoop01为主节点hadoop...
  • huanbia
  • huanbia
  • 2016年05月05日 15:35
  • 6784

hadoop 配置集群之间SSH无密码登陆 (重点推荐)

在"Hadoop集群(第1期)"安装CentOS6.0时,我们选择了一些基本安装包,所以我们需要两个服务:ssh和rsync已经安装了。可以通过下面命令查看结果显示如下:   rpm –qa |...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:配置hadoop各个节点之间免密码登录实践笔记
举报原因:
原因补充:

(最多只允许输入30个字)