码迷,mamicode.com
首页 > 其他好文 > 详细

发送公钥到多台远程主机

时间:2016-06-16 00:13:51      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:saltstack   ssh公钥批量上传   ssh免密码登陆   ssh秘钥去重   

  采用自动化软件管理多台主机时,首先要做的就是将自己的公钥放到远程主机上,而有时,需要管理的主机太多时,也是一件不容易的事情,所以以下就是我写的自动上传公钥的脚本,希望可以帮到需要的朋友


注意

由于上传公钥需要对方的ip地址,所以这个脚本会读取一个ip.txt的文件,请大家注意


ip=`cat ~/ip.txt`


#!/bin/bash
#
#1.为脚本添加远程主机的用户及密码
#############################################################################
read -p "请您输入主机用户:" user
read -p "请您输入主机密码:" mima
read -p "请您再次输入密码:" queren
if [ $mima == $queren ]
then
echo "您输入的密码为:$queren" && sleep 1
echo "正在为您创建密钥对儿,请您注意" && sleep 1
else
echo "您两次输入的密码不匹配,请您重新输入"
read -p "请您输入主机用户:" user
read -p "请您输入主机密码:" mima
read -p "请您再次输入密码:" queren
if [ $mima == $queren ]
then
echo "您输入的密码为:$queren"
        echo "正在为您创建密钥对儿,请您注意" && sleep 1
else
echo "您两次输入的密码不同,请您重新执行脚本"
fi
fi
#############################################################################
#2.检查秘钥、创建密钥
if [ -f /root/.ssh/id_rsa.pub ]
then
	echo "您的主机已经有密钥对儿了,不需要再次创建"
else
	ssh-keygen -t rsa -P ‘‘
fi

rpm -q sshpass &> /dev/null
if [ $? -ne 0 ]
then
	yum -y install sshpass &> /dev/null
        echo "StrictHostKeyChecking no" > /root/.ssh/config
        echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config
else
	echo "StrictHostKeyChecking no" > /root/.ssh/config
        echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config
fi

#3.批量添加密钥对儿
ip=`cat ~/ip.txt`
for i in $ip
do
	sshpass -p $queren ssh-copy-id $user@$i &> /dev/null
	ssh $user@$i "cat /root/.ssh/authorized_keys | uniq > 1.txt | cat 1.txt > /root/.ssh/authorized_keys" &> /dev/null
	if [ $? -eq 0 ] 
	then
		echo "$i is add successful"
	else
		echo "$i is failure"
	fi
done


本文出自 “RSLinux” 博客,请务必保留此出处http://readshlinux.blog.51cto.com/9322509/1789574

发送公钥到多台远程主机

标签:saltstack   ssh公钥批量上传   ssh免密码登陆   ssh秘钥去重   

原文地址:http://readshlinux.blog.51cto.com/9322509/1789574

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!