|
|
楼主 |
发表于 2020-11-5 12:07:56
|
显示全部楼层
创建ssh key,将id_rsa和id_rsa.pub文件分发到各台主机上面。
; |, g) S5 G$ m8 h# _8 Q1 {
+ z$ D9 h. t" L$ v% |复制代码
! E3 F6 u6 s3 I: Z( }1.创建主机配置文件' Z3 W' W! Q: b ]* `& c+ t
2 b2 A( {* Q. X K
[root@localhost script]# cat host 9 B% y: M$ T5 U
192.168.1.10 root 1234566 F4 f# o' @# z2 \
192.168.1.20 root 123456
5 v, n6 E8 k# [8 @8 A192.168.1.30 root 123456
@; C9 l9 X9 E, ^. g o+ s: s9 @# D
[root@localhost script]# ls
" X9 I3 m' |, m; \7 V) o! m" Acopykey.sh hosts
7 N3 u3 t8 L0 v, Y, F2.编写copykey.sh脚本,自动生成密钥并分发key.
; @4 J8 u" d5 J" j% k& J9 y( o[root@localhost script]# vim copykey.sh
: {; `9 g% t3 D# o/ s5 F6 b2 m2 O* y$ b. b$ v
#!/bin/bash7 B5 [0 J5 a. @. Q0 U1 W
, S- I9 q( |& h; ]; v/ T I# 判断id_rsa密钥文件是否存在1 @2 W% }$ {, y: w0 U7 J- s9 D( N
if [ ! -f ~/.ssh/id_rsa ];then" ?( l2 e y+ H4 P( n' Z! N/ T
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
& C D4 H ]4 a3 eelse
! U/ Y" X, }& s6 [ echo "id_rsa has created ..."; W' {/ K8 i5 Q* q6 V" v! _
fi% s* u& C2 d/ ~3 |9 X( }
0 l8 ]; |* X+ v; K8 Q4 _, ^#分发到各个节点,这里分发到host文件中的主机中.0 E; A" Z8 M C4 o
while read line
. f; V/ h. E8 y' R9 o& t+ T do
' u& T1 _* V4 W6 M* t4 ` user=`echo $line | cut -d " " -f 2`
0 {* K7 @* A' t" T$ x ip=`echo $line | cut -d " " -f 1`0 w! H2 T" {4 W9 v# }9 Z3 h* J
passwd=`echo $line | cut -d " " -f 3`) G. c) @- ?1 l1 T: ?- m& f, B, z; D, T
1 ^% v. c* x8 c' R: l* R6 W
expect <<EOF1 R+ F5 V( T- [& o$ E8 |
set timeout 105 I/ ~ U6 L% ~$ a) Q6 V9 {; O8 n3 s
spawn ssh-copy-id $user@$ip
) k, x: G, R0 d1 r3 L& h- f8 o2 i expect {
% [% q; G& s2 t7 ]( n- |' O5 V "yes/no" { send "yes\n";exp_continue }
( L5 `/ ]9 d6 }6 j* v. R! ~ "password" { send "$passwd\n" }6 C5 z$ O* J/ W1 E, b
}# _) L9 A2 H& ]7 l; L5 w( m
expect "password" { send "$passwd\n" }1 h$ O0 e2 g0 O" [5 ~& o- G
EOF
+ Y4 O- ^; s& D: q* c done < hosts |
|