CentOS7下配置SSH免登陆

                               CentOS7下配置SSH免登陆

        HDFS 运行时,内部节点需要进行大量的交互,NameNode 需要向 DataNode下达操作指令,DataNode 之间要进行数据块的传输。linux 具有较强的权限控制机制,如果不做任何处理,则 HDFS 节点之间每次交互都需要输入对方的密码,这是不现实的。 

      为了解决这个问题,需要设置 SSH 免登陆,SSH 是一种安全传输协议,为远程登录和其他网络服务提供安全保障。使用 SSH 的基于公钥的认证方式可以实现免登陆操作,主机 A 生成自己的公私钥对,然后 A 保留私钥,将公钥发送给主机 B。B 将 A 的公钥发布到自己的授权文件中,操作完成后,主机 A 就可以免密码登录主机 B,这就是所谓的 SSH 免登陆。

准备工作

1.需要三台可互ping通的虚拟机,如未安装,可见https://blog.csdn.net/u010590120/article/details/94774143

2.为每一个虚拟机新建一个用户haoop,并获取root权限,可见https://blog.csdn.net/u010590120/article/details/94994219

3.安装ssh,键入命令rpm -qa | grep ssh查看是是否安装ssh服务(默认是自带的),如未安装,可见https://blog.csdn.net/baibaigao/article/details/80956417

公私钥生成

在三台虚拟机上为hadoop用户生成用于ssh免登陆的生成钥对,每个虚拟机上进行的操作是相同的,这里以master为例。

首先首先键入命令su hadoop 输入密码切换为hadoop用户然后键入命令:

ssh-keygen -t rsa

然后连续按两次Enter键,然后会在当前用户目录也就是/home/hadoop/.ssh/

生成两个文件id_rsaid_rsa.pub 分别对应私钥和公钥,具体效果如下

公钥发布

使用公钥认证模式时,ssh的服务端(也就是接受信息的一方)会在authorized_keys文件中存放一些凭证,将客户端的公钥信息追加到这个文件中,便可以实现免密码登录,具体的过程可以参考https://www.cnblogs.com/diffx/p/9553587.html

所以这一步就是要将客户端的公钥文件追加到服务端中,,由于SSH中每台机器既是客户端又是服务端,所以要对每台机器分别进行公钥生成和公钥发布的操作。

这里为了简洁起见 借鉴https://blog.csdn.net/pengjunlee/article/details/81589972中的方法,master统一接收各从机公钥文件保存到authorized_keys中,所有机器的公钥信息采集完毕后,再将其authorized_keys发送给各个从机。

,以A为例,其要将公钥发布给A(便于测试),B,C,B要发布给A,B,C,C要发布给A,B,C。

首先master收集公钥信息,包括自己的

键入命令 将master的公钥追加到自己的认证文件中

cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

收集从机公钥信息,以slave1为例

slave1首先按照前面的步骤生成公私钥,然后将其发送给master,master再将其追加到自己的认证文件中

执行如下命令 注意这里是在master上通过ssh进行的远程追加操作,其效果是将slave1上hadoop用户的公钥文件

追加到master的authorized_keys中

ssh hadoop@slave1 cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

同理键入命令

ssh hadoop@slave2 cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

将slave1上hadoop用户的公钥文件追加到master的authorized_keys中 操作完成后,键入命令、

cat /home/hadoop/.ssh/authorized_keys打开master的authorized_keys,可以看到各机的公钥信息均搜集完毕

 

然后master将认证文件发送给个从机子

使用scp命令将master的公钥复制给各冲击 其命令格式为

# scp [要传输的本地文件] [远程主机用户名]@远程主机ip或主机名:[文件要传输到的目标位置]

执行命令

scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_keys
scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_keys

分别将authorized_keys发送给slave1和slave2

最后更改各机的认证文件访问权限(各机均需执行)

chmod 700 /home/hadoop/.ssh
chmod 600 /home/hadoop/.ssh/authorized_keys

测试 

因为各机在第一次登录服务器时,服务器需要建立一个konwn-host文件,需要按一次yes,所以在安装完毕后,需要将将各机同其他机器登录一次 打个招呼,不然在后续HDFS运行时会出问题

从主机 登录从机测试

从从机登录其他机器测试

 

到此三台CentOS的SSH免登陆配置完毕 下一步就是配置Hadoop了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值