ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:

使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:


首先sshpass是一个ssh连接时的免交互工具,首先要安装一下:
yum install sshpass -y

接下来我们就可以使用sshpass工具了,一条命令形式分发ssh公钥:
sshpass -p "ssh登录密码" ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no root@123.56.221.190  
此时就可以将公钥发送到被管理的服务器上了:
注意:
sshpass : ssh的一个免交互式工具
-p      : 指定客户端登录的密码
ssh-copy-id :自动分发公钥的工具
-i : 指定本机公钥的路径
-o :  StrictHostKeyChecking=no 第一次链接会在know_hosts文件里面写入,这里指不对信息写入。

编写批量分发密钥的脚本,首先我们这里需要假定所有的客户端都使用root账户,而且root账户的密码
都是相同的。

#!/bin/bash
'''
description:  ssh密钥批量分发
author:       fengjunhua
date2018-4-27
使用,将ip随便写入到一个文件里面,指定脚本./ssh_copy.sh 文件名
'''
password=#客户端服务器密码

for ip in `cat $1`
do
    echo "Test $IP if is alive"
    ping $ip -c1 &>/dev/null
    if [ $? -gt 0 ];then
        echo "$ip 无法ping通"
        continue
    else
        echo "在分发密钥"
        sshpass -p "$password" ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no root@{$ip} &>/dev/null
        echo "$ip 密钥分发成功"
    fi
done
原文地址:https://www.cnblogs.com/fengjunhua/p/8962974.html