#!/bin/bash

USER=root
PASS=111

rm -f /root/.ssh/id_rsa
(ssh-keygen -P "" -f /root/.ssh/id_rsa) &>/dev/null
(yum -y install sshpass) &>/dev/null

## 在'{ }'中定义范围 如下举例 4为起始 250为结束 
for i in {49..60}
do
## 在IP_host变量中定义网段
    IP_host=10.10.14.${i}
    ping  -c 1 -w 1 ${IP_host} &>/dev/null
    if [ $? -eq 0 ];then
        (sshpass -p ${PASS} ssh-copy-id -o StrictHostKeyChecking=no ${IP_host}) &>/dev/null
        echo -e "\e[1;32m ${IP_host}    ok \e[0m"
    fi
done

测试脚本结果:

Linux 批量设置免密登入脚本_IP

脚本参如下:

ping  -c 1 -w 1    
    # -c 发送包数量  
    # -w  超时时间以秒为单位
    
ssh-copy-id -o StrictHostKeyChecking=no
    # -o StrictHostKeyChecking=no 取消交互式
    
sshpass -p 
    # -p 指定密码  这里指定密码之后 就不用再ssh-copy-id交互式中指定密码了;