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

Posted 冯君华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]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 [email protected]{$ip} &>/dev/null
        echo "$ip 密钥分发成功"
    fi
done

 

以上是关于ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:的主要内容,如果未能解决你的问题,请参考以下文章

linux下SSH服务利用shell脚本实现密钥的批量分发与执行

记一次特别的批量分发私钥步骤

批量分发密钥对

自动化运维Ansible安装部署及使用

自动化运维Ansible之安装部署

linux-shell系列7-ssh密匙生成分发