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
date:        2018-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

原文地址:https://www.cnblogs.com/fengjunhua/p/8962974.html

时间: 2024-10-08 07:36:02

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

expect批量分发密钥文件

在做批量分发的时候第一次是两个脚本来完成,后来做了一个expect嵌套,完成了一个脚本进行集成 前提要求服务器需要安装expect [[email protected] scripts]# yum -y install expect 脚本分析: #!/bin/bash key_file='/root/.ssh/id_dsa' ####################### 判断秘钥文件是否存在 ###################### if [ -f $key_file ]         

ssh配置详解及公私钥批量分发

第一:ssh配置文件详解 第二:ssh公私密钥的生成 第三:ssh公钥分发之一:ssh自带工具ssh-copy-id工具分发 第四:ssh公钥分发之二:编写sshpass脚本批量分发 第五:ssh公钥分发之三:使用ansible自带模块批量分发 原文地址:https://www.cnblogs.com/fengjunhua/p/8962981.html

Hapoop 搭建 (二)设置虚拟机SSH无密钥登陆

一.将各个节点的公钥加入到同一个授权文件 1.在centos01中,生产密钥文件,并加公钥信息加入到授权文件 cd ~/.ssh/ #若没有此文件夹,先执行 ssh localhsot ssh-keygen -t rsa #生产密钥文件,会提示输入加密信息,都按回车 cat ./id_rsa.pub >> ./authorized_keys #将密钥文件加入到授权文件中 2.在centos02中,生产密钥文件,并发送到centos01节点的相同目录 cd ~/.ssh/ #若没有此文件夹,先执

ssh key密钥认证实现批量分发、管理、部署

在实际生产环境中,如果需要批量管理和部署服务器,可以采用ssh+key秘钥认证,然后可以免密码进行数据分发,服务部署及管理. SSH服务(TCP端口号22):安全的命令解释器 为客户机提供安全的Shell 环境,用于远程管理 SSH基于公钥加密(非对称加密)技术: 数据加密传输: 客户端和服务器的身份验证: 公钥 和 私钥   是成对生成的,这两个密钥互不相同,两个密钥可以互相加密和解密:不能根据一个密钥而推算出另外一个密钥: 公钥对外公开,私钥只有私钥的持有人才知道. ssh批量分发 首先需要

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

SSH项目利用shell脚本实现密钥的批量分发与执行 1 ssh密钥的批量分发 开始安装sshpass免交互工具并进行SSH-key的批量分发 1.1 下载epel源并更新yum仓库 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y clean all yum makecache 1.2 安装sshpass工具 yum -y install sshpass 2 创建密钥文件 2

利用sshpass和ssh编写脚本远程执行命令

import subprocess import os (rfd, wfd) = os.pipe() arg = "-d%d" % rfd try: p = subprocess.Popen(["sshpass",arg,"ssh","-l","haohzhang","phxaishdc9dn1447.stratus.phx.ebay.com","ls","

SSH框架分模块开发

------------------siwuxie095 SSH 框架分模块开发 1.在 Spring 核心配置文件中配置多个内容,容易造成 配置混乱,不利于维护 「分模块开发主要针对 Spring 核心配置文件」 2.把 Spring 核心配置文件中的一部分配置放到单独的 配置文件中,再在 Spring 核心配置文件中引入单独的配 置文件即可 3.一般情况下,建议把 Action 对象的配置放到单独的 配置文件中 「因为其它的配置基本不变,只有 Action 对象的配置在 不断重复」 如: u

ssh分发密钥

生成密钥: ssh-keygen 分发密钥: cd .ssh/ ssh-copy-id -i id_rsa.pub [email protected] 测试: ssh [email protected] 更多用法: man ssh-copy-id man ssh-keygen

rsync配合ssh在不稳定网络下传输大文件

今天的工作需要将一个很大的文件传输出远程主机上,远程主机只开启了sshd服务,仅允许ssh登录,不允许安装其它软件,到远程主机的网络很不稳定. 首先尝试使用scp,由于网络很不稳定,传输20~30M,网络就断了,然后又从头重新传.后来想到rsync貌似可以使用ssh通道,于是写了下面的脚本. #!/bin/bash # rsync_copy.sh export RSYNC_RSH="ssh -i /home/test/.ssh/id_rsa -c arcfour -o StrictHostKey