expect 实现批量基于 ssh 的 key 部署

偷得浮生 记录精彩的人生 本文由博客端 https://www.zhangzhuo.ltd 主动推送

[14:04:26 root@centos8 ~]#cat push_ssh_key.sh
#!/bin/bash
#
#********************************************************************
#Author:zhangzhuo
#QQ: 1191400158
#Date: 2021-01-12
#FileName:push_ssh_key.sh
#URL: https://www.zhangzhuo.ltd
#Description:The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************
#对方主机的登录密码
PASS=123456
#测试expect软件是否安装没有安装进行安装
rpm -q expect &>/dev/null || yum -y install expect &>/dev/null
#生成自己的ssh私钥
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa &>/dev/null && echo "ssh key is created"
#给远程主机部署自己的key
while read IP ;do
expect &>/dev/null <<EOF
set timeout 20
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$IP
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASS\n" }
}
expect eof
EOF
echo $IP is ready
#下面的hosts.txt文件需要写远程主机的IP
done <hosts.txt

[14:04:31 root@centos8 ~]#cat hosts.txt 
192.168.10.81
192.168.10.71
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    107 引用 • 71 回帖 • 550 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...