ansible自动安装并配置ssh免密环境shell脚本

#!/bin/bash

clear
USER=root
PASSWD=amunlinux
PUBDIR=/root/.ssh
cat > ~/prompt-ans.txt << EOF

如果需要配置服务器数量过多,最好在外部保存到ip-list文件内,易于美观

如果.ssh/ 下存在文件,需要删除后再次执行脚本,不想删除注释关键字即可

服务器密码需要统一

EOF
cat ~/prompt-ans.txt
sleep 4s
yum -y install ansible expect*
which expect

如果外部已编辑此文件,需要注释此处

cat > ~/ip-list <<-EOF
10.20.30.4
10.20.30.5
EOF

if [ -f "$PUBDIR"/id_rsa ] || [ -f "$PUBDIR"/id_rsa.pub ]
then
echo -e "\033[33mPrompt: $PUBDIR/ File exists \033[0m"
ls -l "$PUBDIR" --color=auto
read -n1 -p "File exists,Want to delete ? [Y/y/N/n]" keyfile
case $keyfile in
Y | y)
echo " Fine,deleted,Execute the script again ‘$0‘" ;
sudo rm -fr "$PUBDIR"/id_rsa ;;
N | n)
echo " ok,good bye";
break ;;
)
echo " error choice";
break ;;
esac
else

/usr/bin/expect <<-EOF
spawn ssh-keygen -t rsa
expect "\/root\/.ssh\/id_rsa"
send "\r"
expect "empty for no passphrase"
send "\r"
expect "same passphrase again"
send "\r"
expect eof
EOF

for IP in $(cat ~/ip-list)
do
/usr/bin/expect <<-EOF
set timeout 5
spawn ssh-copy-id -i $PUBDIR/id_rsa.pub [email protected]$IP
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { send "$PASSWD\r" }
}
expect eof
EOF
done
wait
echo "------------finish-ok-------------"
rm -fr ~/prompt-ans.txt
fi

#自己的微信群链接
https://blog.51cto.com/amunlinux/2426485

原文地址:https://blog.51cto.com/amunlinux/2436913

时间: 2024-11-08 21:15:52

ansible自动安装并配置ssh免密环境shell脚本的相关文章

解决Centos6.4集群配置ssh免密登陆仍然需要输入密码问题

遇到的问题展示:   Ssh免密登陆配置成功之后仍然需要输入密码,找了很多方法,最后已解决,现把解决办法的详细过程记录下来,希望对你有帮助...       解决办法: 一.准备工作 1.安装ssh服务 执行rpm -qa | grep ssh 若无返回ssh服务,则需要执行下列语句进行安装 sudo yum install openssh-clients sudo yum install openssh-server 2.打开本机的ssh配置文件   删除以下内容每行开头的注释"#"

Hadoop用户配置ssh免密登录

一般生产环境 Hadoop组件都是由hadoop用户来启动,首先需要配置hadoop用户ssh免密登录 1.创建Hadoop用户 [[email protected] ~]# useradd hadoop [[email protected] ~]# id hadoop uid=1102(hadoop) gid=1102(hadoop) groups=1102(hadoop) [[email protected] ~]# passwd hadoop Changing password for u

ssh免密验证,shell批量设置

#!/bin/sh #ssh免密验证,shell批量设置# . /etc/init.d/functions [[ -f /usr/bin/expect ]] || { echo " install expect ...";yum install expect -y >/dev/null 2>&1; } #若没expect则安装# [ $? = 0 ] || { echo "expect安装失败";exit; } #安装失败则退出# PUB=/$H

CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.特点: Mysql是开源的,所以你不需要支付额外的费用.Mysql支持大型的数据库.可以处理拥有上千

linux(十)配置ssh免密登录实现

知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业,并登入远端主机. 一.ssh远程登录 今天要和大家说的是,当我们一台客户机要远程登录到服务器的时候,输入密码才能登录成功. 过程流程图: 所以我们在想能不能我们不需要输入密码,直接使用ssh 用户名@服务器ip就可以登录呢? 二.ssh免密登录原理 看到这个图可能大家有一点蒙逼.我给大家解释一下.

十一、配置ssh免密登录(单机)

1.由于设置ssh免密登录不能修改ip,所以确保主机名和IP地址映射2.ll查看根目录下有没有其他之前设置的.ssh文件,有则要删除rm -rf .ssh/3.获取公钥ssh-keygen -t rsa 其中RSA是一种加密方法4.进入生成的.ssh 文件目录,两个文件,id_rsa是私钥,id_rsa.pub是公钥输入 more id_rsa即可查看私钥5.输入 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys在.ssh下生成新授权信息文件,cat

配置ssh免密登录

安装ssh sudo apt-get install ssh 产生密钥:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa (rsa为ssh的加密方式,-f为将产生的密钥放在.ssh/id_rsa中) (产生密钥之后.ssh文件中会有id_rsa(私钥)和id_rsa.pub(公钥)) 将公钥复制成authorized_key,即将这个公钥固定为ssh登录使用:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_key 将公钥拷贝

shell脚本配置ssh免密登陆

通过shell脚本配置免密登陆,分为两个脚本,一个是配置文件config.env,一个是正式脚本sshkey.sh. # config.envexport HOST_USER=(root) export PASSWD=(a) export SSH_HOST=(192.168.165.15 192.168.165.16 192.168.165.165) 以上congfig.env文件中,SSH_HOST参数可配置多个IP,可配置不同的用户 sshkey.sh脚本内容大致如下: 在本地用rsa加密方

配置SSH免密登录及常见问题

配置免密登录 客户端执行命令$ ssh-keygen -t rsa 回车三次后会在 ~/.ssh/ 下生成两个文件:id_rsa 和 id_rsa.pub,这两个文件是成对出现的 取出id_rsa.pub中内容,复制到服务器端的~/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 验证即可. 常见问题 免密不生效的问题: 检查AuthorizedKeysFile配置是否启用authorized_keys $