用expect解决批量Linux集群机器间SSH免密码访问
转自:http://blog.csdn.net/aichaoguy/article/details/11693269
#!/bin/bash #check whether package 'expect' is installed.
if rpm -q expect
then echo "Good">/dev/null
else echo "You Must install package \'expect\'"; exit 0
fi #开始产生exp文件
cat >/tmp/auto.tcl<<eof #!/usr/bin/expect -f
set timeout -
set host [lrange \$argv ] spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@\$host
expect "*connecting*"
send "yes\r"
expect "*?assword:"
send "12341234\r"
expect eof
eof chmod 755 /tmp/auto.tcl rm -f /root/.ssh/known_hosts
for hostname in `cat cluster`; do
expect -f /tmp/auto.tcl $hostname;
echo "********$hostname*********">> ssh_copy_id.log;
done
很好的解决了新装Linux机器互相之间需要设置SSH无密码访问(ssh-copy-id)的问题(前提是已经用ssh-keygen产生了公钥私钥)。
这只是expect的一个应用,除此之外,exp也可以用在很多需要机器代替人为交互的地方。
用法:
1,得到所有机器的IP地址(这是必须),最好拿到机器名与IP地址的对应(至少应该有一台机器的hosts有)。
2,如果都是IP地址,那就用IP地址好了,一行一个IP存到一个文件里面,就是代码中的 cluster文件;然后从任一机器处,执行此脚本,执行完毕时得到了该机器与所有机器的单项连接。
3,单向连接既然有了,通过此单向连接,控制其他所有机器运行此脚本即可。
用expect解决批量Linux集群机器间SSH免密码访问的更多相关文章
- 集群环境ssh免密码登录设置
一.准备工作 1) 用客户端工具(ssh client或者putty)连接到linux服务器.在root用户下输入命令 vi /etc/hosts,用vi编辑hosts文件,如下: #127.0.0. ...
- CentOS7设置集群环境SSH免密访问
1.准备工作 1)通过克隆或者其他方式获得可互相通信的多台节点(本文为3台虚拟机:hadoop101.hadoop102.hadoop103) 2)配置节点的静态IP.hostname.hosts,参 ...
- 阿里云3台机器组成集群配置ssh免密码登陆
1 查询阿里云局网ip 注意:需要配置同一地区同一可用区的机器 才是一个局网 2 配置好hosts文件 3 hostname确认也是正确的 4 生成公钥私钥 三台机器同样操作 ssh-keygen - ...
- 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!
转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208 版权声明:本文为博主 ...
- Centos 集群配置SSH免登陆脚本
首先编写脚本生成集群服务器列表: hostsList.sh #!/bin/bash preIp="11.11.225." pwd="dyj2017" for i ...
- linux 集群配置ssh无密码访问
一.修改host文件 1) 用客户端工具(ssh client或者putty)连接到linux服务器.在root用户下输入命令 vi /etc/hosts,用vi编辑hosts文件,如下: #127. ...
- hadoop集群配置SSH免登陆
今天给大家总结一下hadoop集群之间免登陆的步骤 node1 ssh node4 1.在node1中生成密钥 [root@node1 ~]# ssh-keygen -t dsa -P '' -f ~ ...
- linux下设置了SSH免密码登录但还是需要输入密码的解决办法
今天在设置linux的免密码登录后,仍然需要输入密码,后来找到了原因,是因为用户没有权限修改.ssh目录下的know_hosts文件导致的. 具体情况是这样的: 在/home/username/.ss ...
- Hadoop伪分布式集群实现SSH免密登录
在启动Hadoop时候报了这样一个错误: Starting namenodes on [hadoop] hadoop: (Permission denied (publickey,gssapi-key ...
随机推荐
- hdu-1131(卡特兰数+大数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1131 思路:R(x)=h(x)*n!=C(n,2*n)*n!=A(n+2,n*2); #include ...
- 破解Unity5.3.4f1
破解的目的是将受限的个人版变为全功能的Pro版,破解后就可以使用所有功能了,界面也变成了黑色的主题. 破解网址(支持最新版的5.3.4f1): http://www.ceeger.com/forum/ ...
- 【Unity】1.0 第1章 Unity—3D游戏开发和虚拟现实应用开发的首选
分类:Unity.C#.VS2015 创建日期:2016-03-23 一.简介 Unity是跨平台2D.3D游戏和虚拟现实高级应用程序的专业开发引擎,是由Unity Technologies公司研制的 ...
- mysql CONCAT用法
1.全表查询 SELECT * FROM `wh_statistics_service_api_request`; 由于上面时间是按year,month,day三个数值字段来存时间的,现在想通过时间段 ...
- c# 点击按选择图片然后展示在richTextBox中
OpenFileDialog o = new OpenFileDialog(); o.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; ...
- Necklace
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- Linux C 创建目录函数mkdir相关【转】
转自:http://blog.csdn.net/fallenink/article/details/8480483 原文地址:http://sharp2wing.iteye.com/blog/1280 ...
- hdu 4946 凸包注意重点
http://acm.hdu.edu.cn/showproblem.php?pid=4946 给你n个点的坐标和速度,如果一个点能够到达无穷远处,且花费的时间是最少的,则此点输出1,否则输出0. 每个 ...
- 【spfa训练】HDU4725 (层级建图)
HDU4725 题目大意:一些节点分布在不同的层上,已知相邻的层可以往来距离为c,在给你一些已知的边,问你点1-n的最短路 分析:越往后做,越觉得最短路的考点已经不是spfa算法还是dijkscar算 ...
- uniGUI试用笔记(九)uniGUI执行程序部署有3种形式1
uniGUI执行程序部署有3种形式 1.ISAPI模式 部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下. 2.标准执行文件模式 将软件编译成一个独立的Exe文件,包括了 ...