Centos下 自动化配置SSH免密码登陆
hosts文件,存储要部署的节点IP地址,其中以#开头表示注释掉
192.168.101.52
192.168.101.53
192.168.101.54
192.168.101.55
192.168.101.56
start.sh文件 在hosts文件中存储的所有节点上,生成默认的公钥和私钥,其中单个节点生成的脚本在keygen文件中
#!/bin/bash # ssh-keygen every node
hosts="hosts" if [ -f hosts ]
then
echo "Start ssh free"
else
echo "Please add hosts file"
exit 1
fi if [ $# != 2 ]
then
echo "USAGE:$0 user password!"
exit 1
else
username=$1
pawdname=$2
#login every node and ssh-keygen
for x in `cat hosts | sed "/^#.*/d"`
do
#echo ${x}
if [ -f keygen ]
then
expect keygen ${username} ${x} ${pawdname}
else
echo "ssh-keygen not exists"
echo "Please check it"
exit 1
fi
done
fi
keygen文件 在单个节点上生成公钥和私钥
#!/usr/bin/expect -f set timeout 2 set name [lindex $argv 0]
set node [lindex $argv 1]
set pawd [lindex $argv 2] spawn ssh ${name}@${node}
expect {
"*yes/no*" {send "yes\n";exp_continue}
"*password:" {send "$pawd\r"}
} expect "*${name}@${node}*"
send "ssh-keygen -t rsa -P ''\r"
expect "*ssh/id_rsa):"
send "\r"
expect {
"Overwrite (y/n)?" {send "y\n";exp_continue}
"*${name}@${node}*" {send "exit\r"}
}
expect eof
exit
备注:请注意,不同版本的提示输出不一样,可能需要读者手动更改keygen 文件中,expect后面的语句
上述几个文件,就可以完成在指定的节点上,生成密钥对了,下面来看下后续处理生成密钥的过程,代码如下:
author.sh 将start.sh脚本中生成的公钥写入到authorized_keys中,并将其上传到各个节点上,最后更改该文件的权限
#!/bin/bash
TMP="tmps"
rm -rf ${TMP}
mkdir ${TMP} TMP=`cd ${TMP};pwd`
HOST="hosts"
USER=""
PAWD="111111" if [ $# == 1 ]
then
USER=$1
elif [ $# == 2 ]
then
USER=$1
PAWD=$2
else
echo "USAGE:$0 username"
echo "USAGE:$0 username password"
exit 1
fi echo ${USER}" "${PAWD} #download id_rsa.pub from every node to the tmp dir
count=1
for x in `cat ${HOST}| sed "/^#.*/d"`
do
expect download ${USER} ${x} ${PAWD} "${TMP}/${count}"
count=`expr $count + 1`
done #let all id_rsa.pub into authorized_keys
count=1
for x in `ls ${TMP}/*`
do
if [ count == 1 ]
then
cat ${x} > /home/${USER}/.ssh/authorized_keys
else
cat ${x} >> /home/${USER}/.ssh/authorized_keys
fi
count=`expr $count + 1`
done #upload the authorized_keys to every node
for x in `cat ${HOST}| sed "/^#.*/d"`
do
expect upload ${USER} ${x} ${PAWD}
done #chmod 600 to authorized_keys
for x in `cat ${HOST}| sed "/^#.*/d"`
do
expect priority ${USER} ${x} ${PAWD}
done
download 和upload脚本比较简单,就当作给读者的练习题吧,如果需要完整的代码,欢迎从这里下载:https://github.com/nashiyue/fssh.git
Centos下 自动化配置SSH免密码登陆的更多相关文章
- CentOS 6.5配置SSH免密码登录
		
centos 系统对权限的设置非常微妙,如果权限设置大了则ssh 拒绝,如果权限小了,则ssh 更是被拒绝(我曾经配置好久没有打通,就是因为权限过大的原因) 参考链接:http://www.linux ...
 - centos或者ubuntu设置ssh免密码登陆
		
1. 输入 # ssh-keygen -t rsa -P "" 然后一路回车 2.输入 # cat ~/.ssh/id_rsa.pub >> ~/.ssh/aut ...
 - 密码配置配置SSH免密码登陆
		
在本文中,我们主要介绍密码配置的内容,自我感觉有个不错的建议和大家分享下 我的用户名是master 1.安装ssh(若没安装的话) sudo apt-get install ssh 2.配置为可以免密 ...
 - 【linux】配置SSH免密码登陆
		
1.输入ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 其中''里的是登陆的密码,因为要设置免密码,所以''里是什么都没有的,空格也不行 2.输入 cat ~/.ss ...
 - centos7 配置ssh 免密码登陆
		
我只有一台机器,是因为要配置hadoop分布式环境用,需要配置ssh 两个用户: zhangxs, root 首先在切换到zhangxs用户下 执行[ ssh-keygen -t rsa] [zhan ...
 - Linux配置SSH免密码登陆
		
配置环境: 两台centos 6.4虚拟机,/etc/hosts配置如下 192.168.63.128 hadoop001 --master192.168.63.131 hadoop002 --sla ...
 - 阿里云3台机器组成集群配置ssh免密码登陆
		
1 查询阿里云局网ip 注意:需要配置同一地区同一可用区的机器 才是一个局网 2 配置好hosts文件 3 hostname确认也是正确的 4 生成公钥私钥 三台机器同样操作 ssh-keygen - ...
 - linux 配置ssh免密码登陆本机
		
1.安装 sudo apt-get install ssh 2.配置无密码登录 ssh-keygen -t rsa 遇到停顿按回车即可 进入/home/zeze/.ssh目录(隐藏目录,在winSCP ...
 - 配置ssh免密码登陆
		
以root账户为例 准备两台以上的Linux服务器,我这里用的是s204,s205两台机器,多台同样的 先使用ssh登录试一下,如果没有安装则需要先安装一下 ssh s205会提示你输入密码 原理 ...
 
随机推荐
- 王者荣耀交流协会第一次Scrum立会
			
工作照片: scrum master:高远博 时间跨度;2017/10/13 6:04-6:34 地点:一食堂二楼两张桌子旁 立会内容; 昨天的成绩;昨天商议了今天的开会的时间.地点 今天的计划;讨论 ...
 - 2017年软件工程第八次作业-每周PSP例行报告
			
1.PSP表格 2.进度条 3.博文字数累积折线图 4.代码行数累积折线图 5.PSP饼图
 - Python:三元运算
			
result=值1 if 条件 else 值2 如果条件为真,result=值1 如果条件为假,result=值2 例子: a,b,c=1,3,5 d=a if a>b else c print ...
 - web表格代码(5)
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - J2EE体系
			
J2EE的概念 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME).适用于桌面系统的J ...
 - 软件工程个人作业3——集大通APP案例分析
			
第一部分:调研, 评测 1.第一次上手体验 主要界面截图: 感受: 1.界面不美观: 2.特色功能展现模块不突出,以上截图为打开APP所看到的界面展示,但是这些功能都不是该APP的特色功能,显得有些累 ...
 - 使用Dede破解Delphi软件实战
			
昨日练习了一把如何破解Delphi软件.下面和大家分享一下破解的过程,对初学者,希望有授之以渔的作用. 首先分析我们的目标软件,不要问我破解的是什么软件.保护知识产权,要从娃娃抓取. 目标软件是一个销 ...
 - 【Python】Python基础教程系列目录
			
Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 <Python基 ...
 - 51nod-1222-最小公倍数计数
			
题意 给到 \(a,b\) ,求 \[ \sum _{i=a}^b\sum _x\sum _y[x\le y][\text{lcm}(x,y)=i] \] 即最小公倍数在 \([a,b]\) 中的有序 ...
 - P2610 [ZJOI2012]旅游
			
题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个凸N边形来表示,N个顶点表示N个入境/出 ...