linux 分发脚本,SSH批量分发脚本

## 1 IP内置版

```sh

#!/bin/bash

#脚本功能:ssh秘钥免交互批量分发 脚本名:fenfa_ssh.sh

#脚本属主:罗钢 联系方式:278554547@qqcom

#要点提示:ssh-keygen -f和-n参数免交互生成秘钥;sshpass命令免交互输入密码;ssh -o参数取消提示语句

. /etc/init.d/functions

Ip_up=172.16.1.

Ip_arr="7 31 41"

Pass_c=123456

Pass_e=abcdef

Pub_file=/root/.ssh/id_dsa.pub

#1.检查公钥文件是否存放,不存在则免交互生成

if [ ! -f /root/.ssh/id_dsa ];then

ssh-keygen -t dsa -f /root/.ssh/id_dsa -N "" >/dev/null 2>&1

fi

#2.检查sshpass命令是否存在,不存在则yum安装

if [ ! -f /usr/bin/sshpass ];then

yum install -y sshpass >/dev/null 2>&1

fi

#3.for循环分发秘钥,如果已经可以免秘钥的,则跳过,免秘钥后,检查并输出检查结果

for Ip_down in $Ip_arr

do

#3.1 使用错误的密码登录远程主机并执行命令,如果仍然能执行成功则说明已做过免秘钥

sshpass -p$Pass_e ssh "-o StrictHostKeyChecking=no" $Ip_up$Ip_down hostname >/dev/null 2>&1

if [ $? -eq 0 ];then

action "$Ip_up$Ip_down :已经可以免秘钥登录,不需要操作" /bin/true

else

#3.2 使用sshpass命令非交互方式输入密码,使用-o参数功能取消提示语句以便免交互分发秘钥

sshpass -p$Pass_c ssh-copy-id -i $Pub_file "-o StrictHostKeyChecking=no $Ip_up$Ip_down" >/dev/null 2>&1

if [ $? -eq 0 ];then

action "免交互分发ssh秘钥到 $Ip_up$Ip_down" /bin/true

else

action "免交互分发ssh秘钥到 $Ip_up$Ip_down" /bin/false

fi

fi

done

```

## 2 传参版

```sh

#!/bin/bash

#脚本功能:ssh秘钥免交互批量分发

#制 作 人:罗钢 联系方式:278554547@qqcom

#要点提示:ssh-keygen -f和-n参数免交互生成秘钥;sshpass命令免交互输入密码;ssh -o参数取消提示语句

. /etc/init.d/functions

Ip_up=172.16.1.

Ip_arr="7 31 41"

Pass_c=123456

Pass_e=abcdef

Pub_file=/root/.ssh/id_dsa.pub

#1.检查公钥文件是否存放,不存在则免交互生成

if [ ! -f /root/.ssh/id_dsa ];then

ssh-keygen -t dsa -f /root/.ssh/id_dsa -N "" >/dev/null 2>&1

fi

#2.检查sshpass命令是否存在,不存在则yum安装

if [ ! -f /usr/bin/sshpass ];then

yum install -y sshpass >/dev/null 2>&1

fi

#3.for循环分发秘钥,如果已经可以免秘钥的,则跳过,免秘钥后,检查并输出检查结果

for Ip_down in $Ip_arr

do

#3.1 使用错误的密码登录远程主机并执行命令,如果仍然能执行成功则说明已做过免秘钥

sshpass -p$Pass_e ssh "-o StrictHostKeyChecking=no" $Ip_up$Ip_down hostname >/dev/null 2>&1

if [ $? -eq 0 ];then

action "$Ip_up$Ip_down :已经可以免秘钥登录,不需要操作" /bin/true

else

#3.2 使用sshpass命令非交互方式输入密码,使用-o参数功能取消提示语句以便免交互分发秘钥

sshpass -p$Pass_c ssh-copy-id -i $Pub_file "-o StrictHostKeyChecking=no $Ip_up$Ip_down" >/dev/null 2>&1

if [ $? -eq 0 ];then

action "免交互分发ssh秘钥到 $Ip_up$Ip_down" /bin/true

else

action "免交互分发ssh秘钥到 $Ip_up$Ip_down" /bin/false

fi

fi

done

```

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值