2019独角兽企业重金招聘Python工程师标准>>>
最近公司新搭建hadoop集群,配置了几台机器之后觉得很麻烦,尤其是ssh无密码登录,每个节点都要配置一遍,于是写了个脚本自动配置,以后集群要添加节点也很方便。
网上很多文章都是在root直接配置的,因为我是用单独的hadoop用户,所以是在该用户下执行操作。
#!/bin/bashexport 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
dossh-copy-id -i ~/.ssh/id_rsa.pub $USER@$LINE # 把公钥分发到集群其他节点,$SLAVES为节点主机名列表echo "Copying keygen to $LINE"
done
执行之后,无密码登录设置成功。已经可以从主节点无密码登录到其他节点了。
注意1:以上仅配置了主节点无密码登录到其他节点,如果要配置其他节点到主节点的ssh,可自行修改在相应节点执行即可。
注意2:各节点配置ssh的用户必须一致,不然会出问题。