天天看点

expect 批量分发ssh 公钥实现自动部署

 自动分发部署的前提

1、安装expect 软件包,安装方法配置好epel源或者源码安装, 这里推荐 配置好epe 源,实现yum 安装 yum install  expect  -y 

2、生成 ssh 公钥 ssh-keygen

cat fenfa.expect

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<code>#!/usr/bin/expect</code>

<code>#date:2017/11/10</code>

<code>Author: http:</code><code>//sdsca</code><code>.blog.51cto.com/</code>

<code>Usage: sh fenfa.expect ip</code>

<code>set</code> <code>ip [lindex $argv 0 ] </code>

<code>set</code> <code>password 123.com </code><code>#远程服务器密码</code>

<code>set</code> <code>timeout 10</code>

<code>cd</code> <code>~</code>

<code>spawn </code><code>ssh</code><code>-copy-</code><code>id</code> <code>-i .</code><code>ssh</code><code>/id_rsa</code><code>.pub root@$ip  </code>

<code> </code><code>expect {</code>

<code> </code><code>"*yes/no"</code> <code>{ send </code><code>"yes\r"</code><code>; exp_continue}      </code>

<code> </code><code>"*password:"</code> <code>{ send </code><code>"$password\r"</code> <code>}          </code>

<code> </code><code>}</code>

<code>expect </code><code>"#*"</code>

<code>expect eof</code>

分发到多台服务器上面

cat fenfa.sh

<code>#!/bin/bash</code>

<code>Author:http:</code><code>//sdsca</code><code>.blog.51cto.com/</code>

<code>Usage: sh fenfa.sh</code>

<code>for</code> <code>ip </code><code>in</code> <code>32 ; </code><code>do</code> <code>#这里可以配置好ip ,进行for 循环</code>

<code>         </code> 

<code>     </code><code>/root/fenfa</code><code>.expect 192.168.10.$ip</code>

<code>    </code> 

<code>done</code>

本文转自 水滴石川1 51CTO博客,原文链接:http://blog.51cto.com/sdsca/1980701,如需转载请自行联系原作者