ssh分发密钥脚本

使用场景 ->ansible

#!/bin/bash
#author: kylerock
#desc:
#   1.一键创建秘钥对(如果不存在)
#   2.一键分发公钥
#   3.一键检查

#1. vars
key=/root/.ssh/id_rsa
ips="7 31 41"
pass=1

#ips="`cat /server/files/ip.txt`"
#2. 一键创建秘钥对
if [ ! -f $key ];then
  ssh-keygen  -f $key   -P  ''  >/dev/null  2>&1
  if [ $? -eq 0 ];then
     echo "秘钥对创建成功"
  else
     echo "密钥对创建失败"
     exit 1
  fi
fi

#3. 一键分发公钥
echo "分发公钥-开始"
for ip  in  $ips
do
      sshpass -p$pass ssh-copy-id -o StrictHostKeyChecking=no 172.16.1.$ip 
      #这里也可以通过$? + if判断公钥分发是否成功
done
echo "分发公钥-完成"

#4. 一键检查
echo "检查-开始"
for ip in $ips 
do
      ssh  -o StrictHostKeyChecking=no  172.16.1.$ip  hostname -I 
      #这里也可以通过$? + if执行是否成功
done
echo "检查-结束"
posted @ 2024-10-31 21:30  kyle_7Qc  阅读(3)  评论(0编辑  收藏  举报