脚本自动配置hadoop集群的ssh无密码登录

最近公司新搭建hadoop集群,配置了几台机器之后觉得很麻烦,尤其是ssh无密码登录,每个节点都要配置一遍,于是写了个脚本自动配置,以后集群要添加节点也很方便。

网上很多文章都是在root直接配置的,因为我是用单独的hadoop用户,所以是在该用户下执行操作。

#!/bin/bash

export SLAVES="slave1 slave2"
export USER='hadoop'

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa                   #生成本机密钥对,一般在登录用户的.ssh目录下

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys            #把公钥追加到授权的key里面去,此时已经可以ssh本机了,可用ssh localhost测试

chmod 600 ~/.ssh/authorized_keys                           #修改文件"authorized_keys"权限,不安全的设置安全设置,会让你不能使用RSA功能
                                                           #在验证时,扔提示你输入密码,经常都是这里出问题
echo $SLAVES | tr " " "\n"| while read LINE                
do
	ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@$LINE       # 把公钥分发到集群其他节点,$SLAVES为节点主机名列表
	echo "Copying keygen  to $LINE"
done

执行之后,无密码登录设置成功。已经可以从主节点无密码登录到其他节点了。

注意1:以上仅配置了主节点无密码登录到其他节点,如果要配置其他节点到主节点的ssh,可自行修改在相应节点执行即可。

注意2:各节点配置ssh的用户必须一致,不然会出问题。

你可能感兴趣的:(hadoop,ssh无密码登录)