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免密码登陆的更多相关文章

  1. CentOS 6.5配置SSH免密码登录

    centos 系统对权限的设置非常微妙,如果权限设置大了则ssh 拒绝,如果权限小了,则ssh 更是被拒绝(我曾经配置好久没有打通,就是因为权限过大的原因) 参考链接:http://www.linux ...

  2. centos或者ubuntu设置ssh免密码登陆

    1. 输入  # ssh-keygen -t rsa -P ""  然后一路回车 2.输入  # cat ~/.ssh/id_rsa.pub >> ~/.ssh/aut ...

  3. 密码配置配置SSH免密码登陆

    在本文中,我们主要介绍密码配置的内容,自我感觉有个不错的建议和大家分享下 我的用户名是master 1.安装ssh(若没安装的话) sudo apt-get install ssh 2.配置为可以免密 ...

  4. 【linux】配置SSH免密码登陆

    1.输入ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 其中''里的是登陆的密码,因为要设置免密码,所以''里是什么都没有的,空格也不行 2.输入 cat ~/.ss ...

  5. centos7 配置ssh 免密码登陆

    我只有一台机器,是因为要配置hadoop分布式环境用,需要配置ssh 两个用户: zhangxs, root 首先在切换到zhangxs用户下 执行[ ssh-keygen -t rsa] [zhan ...

  6. Linux配置SSH免密码登陆

    配置环境: 两台centos 6.4虚拟机,/etc/hosts配置如下 192.168.63.128 hadoop001 --master192.168.63.131 hadoop002 --sla ...

  7. 阿里云3台机器组成集群配置ssh免密码登陆

    1 查询阿里云局网ip 注意:需要配置同一地区同一可用区的机器 才是一个局网 2 配置好hosts文件 3 hostname确认也是正确的 4 生成公钥私钥 三台机器同样操作 ssh-keygen - ...

  8. linux 配置ssh免密码登陆本机

    1.安装 sudo apt-get install ssh 2.配置无密码登录 ssh-keygen -t rsa 遇到停顿按回车即可 进入/home/zeze/.ssh目录(隐藏目录,在winSCP ...

  9. 配置ssh免密码登陆

      以root账户为例 准备两台以上的Linux服务器,我这里用的是s204,s205两台机器,多台同样的 先使用ssh登录试一下,如果没有安装则需要先安装一下 ssh s205会提示你输入密码 原理 ...

随机推荐

  1. 王者荣耀交流协会第一次Scrum立会

    工作照片: scrum master:高远博 时间跨度;2017/10/13 6:04-6:34 地点:一食堂二楼两张桌子旁 立会内容; 昨天的成绩;昨天商议了今天的开会的时间.地点 今天的计划;讨论 ...

  2. 2017年软件工程第八次作业-每周PSP例行报告

    1.PSP表格 2.进度条 3.博文字数累积折线图 4.代码行数累积折线图 5.PSP饼图

  3. Python:三元运算

    result=值1 if 条件 else 值2 如果条件为真,result=值1 如果条件为假,result=值2 例子: a,b,c=1,3,5 d=a if a>b else c print ...

  4. web表格代码(5)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. J2EE体系

    J2EE的概念 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME).适用于桌面系统的J ...

  6. 软件工程个人作业3——集大通APP案例分析

    第一部分:调研, 评测 1.第一次上手体验 主要界面截图: 感受: 1.界面不美观: 2.特色功能展现模块不突出,以上截图为打开APP所看到的界面展示,但是这些功能都不是该APP的特色功能,显得有些累 ...

  7. 使用Dede破解Delphi软件实战

    昨日练习了一把如何破解Delphi软件.下面和大家分享一下破解的过程,对初学者,希望有授之以渔的作用. 首先分析我们的目标软件,不要问我破解的是什么软件.保护知识产权,要从娃娃抓取. 目标软件是一个销 ...

  8. 【Python】Python基础教程系列目录

    Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 <Python基 ...

  9. 51nod-1222-最小公倍数计数

    题意 给到 \(a,b\) ,求 \[ \sum _{i=a}^b\sum _x\sum _y[x\le y][\text{lcm}(x,y)=i] \] 即最小公倍数在 \([a,b]\) 中的有序 ...

  10. P2610 [ZJOI2012]旅游

    题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个凸N边形来表示,N个顶点表示N个入境/出 ...