首页 > 系统相关 >批量自动分发Linux密码

批量自动分发Linux密码

时间:2024-10-22 15:21:44浏览次数:1  
标签:分发 网段 批量 ip IP地址 ssh Linux 密钥

2. 批量自动分发密钥(完整版)

#本shell脚本是基于DSA加密方式进行加密的,测试的环境为centOS7.5,若要使用别的加密方式,请修改源代码,此脚本可以自动发现IP地址,并分发分发,同一网段的IP地址,目前还不可以分发多网段的IP地址。
#可以实现SSH密钥基于DSA方式密钥的分发及创建新密钥并进行分发。

#!/bin/bash
. /etc/rc.d/init.d/functions	#使用action


#请根据第14行的提示,修改第15行的内容,改为需要分发的IP网段。

#填写发现主机IP地址的网段的前3段,如 172.16.1.   即可
while [ "" ]
read -p "请输入要分发SSH密钥对的网段:
	格式:172.16.1.		即可
	 " ip

#询问是否更新DSA密钥对,还是继续使用本地原有的密钥对
while [ "$my" != "y" -a "$my" != "n" ]
do
	read -p "是否创建更新DSA密钥对
	是 请输入:y ;否 请属于 n
	输入字符应为小写字符" my
done

#填写主机的密码
read -p "请属于主机密码:" ma



#查找这个网段,可以ping通的IP地址
#ip存放的文件路径
while true
do
tim=`date +\%N` 
[ -e ./${tim}.txt ] && continue 
break
done



#开始查找主机段,将可ping通的IP地址放入一个文件中
for i in `seq 254`
do
{
	 ping -w 2 -c 2 ${ip}${i} >/dev/unll 2>&1
	if 	[ $? -eq 0 ] 
	then 
		echo "${ip}${i}" >>./${tim}.txt
	else 
		break
	fi
}&
done
wait

#判断是否有存在的SSH DSA的密钥
 [ -e /root/.ssh/id_dsa.pub ] 
if [ $? -eq 0 ]
then
	if [ "${my}" -eq "y" ]
	then 
		#删除主机本身密钥
		\mkdir -p /tmp/ssh/
		\mv -f /root/.ssh/id_*  /tmp/ssh/
	        #创建主机新密钥
		ssh-keygen -t dsa -f /root/.ssh/id_dsa -N '' >/dev/null 2>&1 -q
	else
		break
	fi
else
	#创建主机新密钥
	ssh-keygen -t dsa -f /root/.ssh/id_dsa -N '' >/dev/null 2>&1 -q


#批量分发ssh密钥文件
for ip in `cat ./${tim}.txt`
do
	#开始进行非交互式批量分发DSA密钥
sshpass -p${ma} ssh-copy-id -i ~/.ssh/id_rsa.pub  root@${ip}  -o StrictHostKeyChecking=no  &>/dev/null
	if [ $? = 0 ]
	then
		action  "fenfa ${ip}"  /bin/true
	else
		action  "fenfa ${ip}"  /bin/false
	fi

done
echo " "

#删除上面脚本产生的文件
\rm ./${tim}.txt -rf
	#存放的为可ping通的主机ip地址

标签:分发,网段,批量,ip,IP地址,ssh,Linux,密钥
From: https://www.cnblogs.com/megshuai/p/18492959

相关文章

  • Linux系统上使用nmcli命令配置各种网络
    目录一、配置NetworkManager接管网络(选)安装Network-Manager并启动netplan管理网络的系统ifupdown管理网络的系统二、nmcli的相关配置(后置参数均可缩写)有线网络配置使用nmcli添加一个网卡并配置静态ip地址激活/关闭网卡使用nmcli修改一个网卡的地址使用nmcli添加一个网卡......
  • Allegro怎么批量将弧形线改成45度角的线?
    Allegro如何将弧形线改成45度角的线?在用Allegro进行PCB设计时,有时候需要将弧形线改为45度角的线。具体操作方法如下:1、选择菜单栏Route选择UnsupportedPrototypes(不支持的原型)→AICC2、在Options选项卡选择45度3、在Find选项卡选择Nets,选择网络可以批量转换,提高效......
  • 【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboo
      迅为i.mx8mm开发板特点: 性能强:i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核,主频高达1.8GHz,2GDDR4内存、8GEMMC存储。 PMIC:采用PCA9450A电源管理,是NXP全新研制配套iMX.8M的电源管理芯片,有六个......
  • 【Linux线程】Linux多线程实践:深入生产者消费者模型
    ......
  • Linux部署nginx
     linux部署启动nginx在Linux上部署并启动Nginx的步骤通常如下: 安装Nginx:使用包管理器(如apt或yum)安装Nginx。对于基于Debian的系统(如Ubuntu),使用以下命令:sudoaptupdatesudoaptinstallnginx对于基于RPM的系统(如CentOS),使用以下命令:sudoyuminsta......
  • 在K8S中,有一种情况,公司希望向具有各种环境的客户提供所有必需的分发,他们如何以动态的
    在Kubernetes(K8S)中,公司若希望向具有各种环境的客户提供所有必需的分发,并以动态的方式实现这一关键目标,可以遵循以下步骤和策略:1.多环境部署策略创建不同的命名空间在Kubernetes中,命名空间是一种将集群内部资源(如Pod、Service等)分组的方式。公司可以为每个客户或环境创建一个......
  • Linux使用nc(netcat)命令检测网络端口是否畅通以及Linux查看CPU架构命令arch及CentOS
    一、Linux使用nc(netcat)命令检测网络端口是否畅通    nc命令netcat的简写,netcat即是网络猫的意思,在linux系统中nc命令实际执行命令是ncat。nc命令是一个功能强大的网络工具。平常主要用于实现TCP/UDP端口的侦听和收发,nc可作为server以TCP或UDP方式侦听指定端口,也可作为cl......
  • Linux下安装Nginx,CentOS7安装Nginx
    首先,需要安装一些编译Nginx所需的依赖包,使用以下命令:yum-yinstallgccpcre-develzlib-developenssl-devel下载https://nginx.org/en/download.html上传到opt目录下或者直接在linux系统里下载wgethttp://nginx.org/download/nginx-1.26.2.tar.gz如果command......
  • Linux安装mysql
    LINUX安装MYSQL详细教程(两种安装方法) 参考:https://www.cnblogs.com/csjoz/p/18178796Linux之Mysql安装配置第一种:Linux离线安装Mysql(提前手动下载好tar.gz包)第二种:通过yum安装配置Mysql(服务器有网络)第一种:tar.gz包安装1、查看是否已经安装Mysqlrpm-qa|grepmysql如果......
  • Linux卸载mysql
     (一)linux卸载mysql要在Linux系统中卸载MySQL,可以使用包管理器。以下是基于不同Linux发行版的卸载命令示例:对于基于Debian的系统(如Ubuntu),使用以下命令:sudoapt-getremove--purgemysql-servermysql-clientmysql-commonsudoapt-getautoremovesudoapt-getautoclean对于......