TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!
  1. 首页
  2. 脚本
  3. 正文

通过脚本一键分发SSH密钥到100台服务器

2023年11月17日 996点热度 0人点赞 0条评论

测试环境分发2台主机

环境准备

主机名 ip 密码
ansible 192.168.139.71
web-server1 192.168.139.36 root
web-server2 192.168.139.30 root

编写相应脚本

`生成密码`
[root@ansibel ssh]# ssh-keygen 
`把对应密码放入到txt文件`
[root@ansibel ssh]# cat ip_pwd.txt 
192.168.139.36 root
192.168.139.30 root
`脚本`
[root@ansibel ssh]# cat ssh_add.sh 
#!/bin/bash
while read ip passwd ;do
  sshpass -p$passwd ssh-copy-id -i /root/.ssh/id_rsa.pub $ip -o StrictHostKeyChecking=no &>/dev/null 
   if [ $? -eq 0 ]; then
     echo "主机${ip}分发成功!!"
   else
     echo "主机${ip}分发失败@@@"
   fi
done < ip_pwd.txt
​
`运行脚本`
[root@ansibel ssh]# bash ssh_add.sh 
主机192.168.139.36分发成功!!
主机192.168.139.30分发成功!!
`验证`
[root@ansibel ssh]# ssh 192.168.139.36
Last login: Fri Nov 17 11:28:12 2023 from 192.168.139.71
[root@web-server2 ~]# exit
logout
Connection to 192.168.139.36 closed.
[root@ansibel ssh]# ssh 192.168.139.30
Last login: Fri Nov 17 11:49:21 2023 from 192.168.139.1
[root@web-server1 ~]# 

批量分发100台主机

生成IP和密码

[root@ansibel ssh]# cat ip_passwd.sh 
#!/bin/bash
#批量生成ip 和密码
​
for i in {1..2}; do
  for j in {1..50};do
    IP="192.168.${i}.${j}"
    PASSWD=`echo $RANDOM | md5sum |cut -c -12`
    echo $IP $PASSWD >> ip_pwd.txt
  done
done
​
`运行脚本生成100个IP和对应密码`
[root@ansibel ssh]# bash ip_passwd.sh
[root@ansibel ssh]# cat ip_pwd.txt | wc -l
100
[root@ansibel ssh]# tail  ip_pwd.txt 
192.168.2.41 10ae913661c9
192.168.2.42 e43057e23ebc
192.168.2.43 9b0bd1cdd320
192.168.2.44 99b2f282271f
192.168.2.45 8bed04fa12ae
192.168.2.46 c8a538e3bf28
192.168.2.47 04ee751e4342
192.168.2.48 c282809f82a9
192.168.2.49 217854aa0ff4
192.168.2.50 92d7d1b5e644

编写ssh分发脚本

[root@ansibel ssh]# cat ssh_add.sh
#!/bin/bash
while read ip passwd ;do
  sshpass -p$passwd ssh-copy-id -i /root/.ssh/id_rsa.pub $ip -o StrictHostKeyChecking=no &>/dev/null 
 if [ $? -eq 0 ] then
   echo "主机${ip}分发成功!!"
 else
   echo "主机${ip}分发失败@@@"
 fi
done < ip_pwd.txt
​
`运行脚本`
[root@ansibel ssh]# bash -x ssh_add.sh 
+ read ip passwd
+ sshpass -p0c8f7e90b9d6 ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.1 -o StrictHostKeyChecking=no
+ '[' 1 -eq 0 ']'
+ echo 主机192.168.1.1分发失败@@@
主机192.168.1.1分发失败@@@
+ read ip passwd
+ sshpass -pacaa2db0f5be ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.2 -o StrictHostKeyChecking=no
+ '[' 1 -eq 0 ']'
+ echo 主机192.168.1.2分发失败@@@
主机192.168.1.2分发失败@@@
#脚本效果没有问题只是因为我们的ip是随机生成的所以分发失败
标签: 暂无
最后更新:2023年11月17日

tanghao946

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 测试环境分发2台主机
    • 环境准备
    • 编写相应脚本
  • 批量分发100台主机
    • 生成IP和密码
    • 编写ssh分发脚本

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号