最近要给集群设置ssh无密码登陆,如果需要手动设置这个无密码登陆,所以在网上找了几个脚本,亲测下面这个好使,并且设置比较简单。

需要用root账户执行,我也是要给root账户设置无密码登陆。

首先我们要创建密码,执行下面这句命令:

ssh-keygen -t rsa

脚本如下:我们仅仅需要修改的就是node=()里面的主机名就可以了,当前前提是你必须在/etc/hosts 配置了。

#!/bin/bash
node=(hadoop.Master hadoop.SlaveT1 hadoop.SlaveT2)  # hostname for each node
username=root            # username to be interconnected
homename=$username        # home dir, i.e. home/zhangyang
if [ "$username" = "root" ];
then
        homename=root
else
        homename=home/$username
fi

; i<${#node[*]}; i++))
do
        ssh $username@${node[i]} 'ssh-keygen -t rsa; chmod 755 ~/.ssh'
done
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

echo "batch authorized_keys created..."
echo "start scp..."

#scp node003:/$homename/.ssh/authorized_keys /$homename/.ssh/node003.key
; i<${#node[*]}; i++))
do
        scp ${node[i]}:/$homename/.ssh/id_rsa.pub /$homename/.ssh/${node[i]}.key
        echo "scp from ${node[i]} finished..."
done

echo "append key to authorized_keys..."
; i<${#node[*]}; i++))
do
        cat /$homename/.ssh/${node[i]}.key >> /$homename/.ssh/authorized_keys
        echo "append ${node[i]}.key finished..."
done

echo "append all key finished..."
loop=${#node[*]}
let subloop=loop-
echo "starting scp complete authorized_keys to ${node[1]}~${node[subloop]}"
; i<${#node[*]}; i++))
do
        scp /$homename/.ssh/authorized_keys ${node[i]}:/$homename/.ssh/authorized_keys
        echo "scp to ${node[i]} finished..."
done
echo "scp all nodes finished..."

# delete intermediate files
rm -rf /$homename/.ssh/*.key
echo "all configuration finished..."

然后给脚本授予执行的权限 chmod +x  batchSSH.sh

然后执行./batchSSh.sh

当然这个脚本也有缺陷,它需要自己手动输入密码,如果节点多的话,还是很痛苦的,不过还好啦,比起自己手动搞的话,好多了,谁叫我不懂shell呢,哈哈!

最新文章

  1. fiddler发送post请求
  2. pod Spec管理配置
  3. 使用Dir,遍历文件夹下所有子文件夹及文件
  4. 小菜学习Winform(七)系统托盘
  5. MySQL查询缓存
  6. Java EE开发平台随手记5——Mybatis动态代理接口方式的原生用法
  7. php导出excel封装类
  8. have you declared this activity in your AndroidManifest.xml
  9. WinFom基本属性
  10. POJ2533Longest Ordered Subsequence(DP)
  11. tRNAscan-SE
  12. 获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)
  13. dreamvc框架(一)ioc容器的集成
  14. (转载)小课堂UI-Star Diamond Tutorial
  15. java没有条件编译
  16. iOS Touch ID 身份认证
  17. 懒人的小技巧, 批处理修改IP
  18. 【深度学习】深入理解Batch Normalization批标准化
  19. SiteMesh入门(1-1)SiteMesh是什么?
  20. OLED小记

热门文章

  1. 关于thymeleaf+layout布局的使用方式,spring boot 访问页面(静态页面及jsp页面)
  2. Python Tensorflow CNN 识别验证码
  3. 微服务,ApiGateway 与 Kong
  4. [转载]关于generate用法的总结【Verilog】
  5. 绕过chrome的弹窗拦截机制
  6. node调试的两种方法
  7. C++对象模型-构造函数语意学
  8. 每日英语:The best time for coffee is 10:30 a.m.
  9. HBase写入性能改造(续)--MemStore、flush、compact参数调优及压缩卡的使用【转】
  10. js模拟form打开新窗口