文章目录-Shell阶段六-密钥的批量分发与执行

  • 前言
    • 一,开始部署ssh密钥的批量分发
      • 第一步:开始安装sshpass免交互工具并进行SSH-key的批量分发
        • 下载epel源并更新yum仓库,安装sshpass工具
    • 第二步:创建密钥对文件
      • 免交互创建密钥对
    • 第三步:免交户方式分发公钥
    • 第四步:测试ssh密钥认证情况
    • 第五步:编写ssh密钥对免交户批量分发脚本
    • 第六步:脚本分发测试
  • 总结

前言


# 【SSH项目实战】脚本密钥的批量分发与执行

一,开始部署ssh密钥的批量分发

第一步:开始安装sshpass免交互工具并进行SSH-key的批量分发

下载epel源并更新yum仓库,安装sshpass工具

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y clean all
yum makecacheyum -y install sshpass

第二步:创建密钥对文件

免交互创建密钥对

命令说明:
ssh-keygen:生成密钥对命令
-t:指定密钥对的密码加密类型(rsa,dsa两种)
-f:指定密钥对文件的生成路径包含文件名
-P(大写):指定密钥对的密码

 ssh-keygen -t dsa -f ~/.ssh/id_dsa -P “”ls ~/.ssh/

第三步:免交户方式分发公钥

命令说明:
sshpass:专为ssh连接服务的免交户工具
-p :指定登录的密码
ssh-copy-id:自动分发公钥的工具
-i:指定公钥路径
-o StrictHostKeyChecking=no :不进行对方主机信息的写入(第一次ssh连接会在know_hosts文件里记录)

sshpass -p “ssh登录密码” ssh-copy-id -i ~/.ssh/id_dsa.pub “-o StrictHostKeyChecking=no root@172.16.1.31”

第四步:测试ssh密钥认证情况

ssh root@172.16.1.31 #测试成功,免密码ssh连接

第五步:编写ssh密钥对免交户批量分发脚本

#  /bin/bash
# description:SSH密钥批量分发User=root
passWord=##Linux登录密码function YumBuild(){echo "正在安装epel源yum仓库,请稍后..."
cd /etc/yum.repos.d/ &&\
[ -d bak ] || mkdir bak
[ `find ./*.* -type f | wc -l` -gt 0 ] && find ./*.* -type f |  xargs -i mv {} bak/
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo &>/dev/null
yum -y clean all &>/dev/null
yum makecache &>/dev/null}echo "正在进行网络连接测试,请稍后..."
ping www.baidu.com -c2 >/dev/null ||(echo "无法连同外网,本脚本运行环境必须和外网相连!" && exit)
[  $# -eq 0 ] && echo "没有参数!格式为:sh $0 参数1...n" && exit
rpm -q sshpass &>/dev/null || yum -y install sshpass &>/dev/null
if [ $? -gt 0 ];thenYumBuildyum -y install sshpass &>/dev/null || (echo "sshpass build error!" && exit)
fi
[ -d ~/.ssh ] || mkdir ~/.ssh;chmod 700 ~/.ssh
echo "正在创建密钥对...."
rm -rf ~/.ssh/id_dsa ~/.ssh/id_dsa.pub
ssh-keygen -t dsa -f ~/.ssh/id_dsa -P "" &>/dev/null
for ip in $*
doping $ip -c1 &>/dev/null if [ $? -gt 0 ];thenecho "$ip无法ping通请检查网络" continuefisshpass -p "$passWord" ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no ${User}@$ip" &>/dev/nullecho "$ip 密钥分发成功"
done

第六步:脚本分发测试

sh /server/scripts/ssh_key.sh 172.16.1.5 172.16.1.6 172.16.1.7 172.16.1.8 172.16.1.51 172.16.1.31 172.16.1.41 172.16.1.61

总结

Shell脚本学习-阶段六-密钥的批量分发与执行相关推荐

  1. Shell脚本学习-阶段二

    文章目录-Shell脚本学习阶段二 前言 shell脚本实操2 1.获取随机字符串或数字 2.定义一个颜色输出字符串函数 3.批量创建用户 4.检查软件包是否安装 5.检查服务状态 6.检查主机存活状 ...

  2. 【SSH项目实战】脚本密钥的批量分发与执行【转】

    [TOC] 前言 <项目实战>系列为<linux实战教学笔记>第二阶段内容的同步教学配套实战练习,每个项目循序衔接最终将组成<Linux实战教学笔记>第二阶段核心教 ...

  3. Shell脚本学习-阶段二十七-命令解释三

    文章目录 前言 quyotastats repquota convertquota swapoff swapon sync chroot getent last lastb lastlog logro ...

  4. Shell脚本学习-阶段二十七-命令解释一

    文章目录-命令解释一 前言 as expr gcc gcov gdb indent ld ldconfig ldd make mktemp nm objdump perl php protoize u ...

  5. Shell脚本学习-阶段三

    文章目录-Shell学习阶段三 前言 1.用shell脚本批量建立Linux用户 2. 编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下: 3.通过ap ...

  6. Shell脚本学习-阶段一

    文章目录 阶段一 前言 Shell脚本实例 1.hello world 2.创建用户: 2.1 通过位置变量创建用户 2.2提示用户输入用户名和密码创建用户 2.3读取user.txt文件中的用户名批 ...

  7. Shell脚本学习-阶段二十七-命令解释二

    文章目录-命令解释二 前言 emacs jed joe nano================ pico sed=================== vi,vim============ mtyp ...

  8. Shell脚本学习-阶段四-mysqladmin

    文章目录-Shell学习-阶段四mysqladmin 前言 20条mysql的mysqladmin 1.设置mysql的root密码 2.更改mysql的root密码 3.确保mysql Server ...

  9. Shell脚本学习-阶段二十八-shell练习二

    文章目录-练习2 前言 1.编写shell脚本程序,完成如下功能: 输出hello world ! 2.编写shell脚本程序,完成如下功能: 输入你的姓名,输出 hello, nice to mee ...

最新文章

  1. stm32怎么用keil软件进行仿真?(必需掌握的技能)
  2. 数组与字符串三(Cocos2d-x 3.x _Array容器)
  3. [JBoss] - 环境搭建
  4. 锤子濒危、金立倒闭,华米 OV 们如何艰难求生?
  5. pat甲级什么水平_转让河北工程设计建筑行业(建筑工程)甲级资质
  6. spring中bean属性scope
  7. 《Android软件安全与逆向分析》— Android 书籍
  8. 拿了工资就要干活,不干活不是成了骗钱?
  9. cydia 未能连接服务器,cydia无法加载,详细教您cydia无法加载怎么解决
  10. 三部曲打造无路由器破解闪讯WiFi共享 经好几个同学验证
  11. 启动分区不存在,使用分区工具修正
  12. 当代博物馆中的3DGIS虚拟现实搭建
  13. 手机传感器你知道多少个?
  14. 微信小程序:经典语录大全微信小程序源码
  15. 前端css单位小结:vh、vw、百分比、rem、px、计算属性calc
  16. 微信小程序Day4学习笔记
  17. java空指针异常【解决思路-方法】
  18. 【语义分割】2021-PVT ICCV
  19. 前端小白系列之——导言
  20. PCL小工具二:使用kitti的GT(ground truth)建立激光点云地图

热门文章

  1. Linux 的 复制命令 【 cp 】 (copy)及其 (常用参数 -fp)
  2. 【Oracle】ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
  3. 关于安装QTP之后造成环境变量java冲突问题的解决方案
  4. 同时安装Python2,Python3如何解决冲突问题【官方解法】
  5. springboot2.0处理自定义异常始终返回json
  6. 安装Jenkins后 启动时失败的问题解决
  7. python解决高并发的方法
  8. Android App自动更新解决方案(DownloadManager)
  9. 树莓派-解决apt-get upgrade速度慢的方法[更换阿里云源]
  10. 如何手动触发onchange事件? [重复]