ssh互信自动化脚本(待更新)
1.建立一个ip,端口,用户,密码列表
- [root@localhost shell-key]# cat arg_list.txt
- 172.16.56.237 clouds root 172.16.56.215
- 172.16.56.53 clouds root 172.16.56.215
- 172.16.56.215 clouds root 172.16.56.215
- [root@localhost shell-key]#
2.建立expect交互交脚本:
- [root@localhost shell-key]# cat expect_run_config.exp
- #!/usr/bin/expect -f
- set ip [lindex $argv ]
- set passwd [lindex $argv ]
- set username [lindex $argv ]
- set port [lindex $argv ]
- set localip [lindex $argv ]
- set ssh_file [lindex $argv ]
- set remo_ip [lindex $argv ]
- set key_name [lindex $argv ]
- set timeout
- #
- #create the key in the every node
- #生成公共密钥
- spawn ssh $username@$ip
- expect {
- "*yes/no" { send "yes\r"; exp_continue}
- "*password:" { send "$passwd\r" }
- }
- expect "*#\n"
- send "rm -fr /root/.ssh\r"
- send "mkdir /root/.ssh\r"
- send "chmod 700 /root/.ssh\r"
- send "cd /root/.ssh\r"
- send "ssh-keygen\r"
- expect "*_rsa):"
- send "\r"
- expect "*ase):"
- send "\r"
- expect "*again:"
- send "\r"
- expect "#\n"
- send "exit\r"
- expect eof
- spawn ssh $username@$remo_ip
- expect {
- "*yes/no" { send "yes\r"; exp_continue}
- "*password:" { send "$passwd\r" }
- }
- expect "*#\n"
- send "scp /root/.ssh/id_rsa.pub $username@$localip:/root/shell-key/pub_key/$key_name\r"
- expect "*(yes/no)?"
- send "yes\r"
- expect "*password: \n"
- send "$passwd\r"
- #expect "*password:\n"
- #send "$passwd\r"
- expect "*#\n"
- send "exit\r"
- expect eof
- [root@localhost shell-key]#
3.建立一个shell循环脚本:
- [root@localhost shell-key]# cat loop-out.sh
- #!/bin/sh
- #loop_sh.sh
- echo "########******loding*******#########"
- rm -fr /root/shell-key/pub_key/*
- rm -fr /root/shell-key/hello.txt
- while read line
- do
- echo $line >> hello.txt
- done < arg_list.txt
- sleep 3
- rm -fr /root/shell-key/exp_list.txt
- while read sl
- do
- echo $sl | sed "s/$/ ${RANDOM}.key/" >> exp_list.txt
- done < hello.txt
- sleep 3
- while read list
- do
- echo $list | awk '{print $1}'
- rem_ip=$(echo $list | awk '{print $1}')
- rem_keyname=$(echo $list | awk '{print $6}')
- ./expect_run_config.exp $list $rem_ip $rem_keyname
- done < exp_list.txt
- cat /root/shell-key/pub_key/* > /root/.ssh/authorized_keys
- if [ $? -eq 0 ];then
- echo "******************************************"
- echo "Congratulations, you create a public key *"
- echo "******************************************"
- else
- echo "Please check_your script $0 and expect config! "
- echo "Good luck !"
- fi
- [root@localhost shell-key]#
4.执行脚本:
- [root@localhost shell-key]# ./loop-out.sh
遍地是高手,我是菜鸟中的菜鸟,不喜勿喷!!!
ssh互信自动化脚本(待更新)的更多相关文章
- 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例
查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...
- 20181225-Linux Shell Bash环境下自动化创建ssh互信脚本
20181225-Linux Shell Bash环境下自动化创建ssh互信脚本 1. 我的Blog 博客园 https://www.cnblogs.com/piggybaba/ 个人网站 http: ...
- 批量配置SSH互信脚本
在大规模自动化部署时我们常常需要配置好服务器的SSH互信,以便自动化脚本可以免密登录远程服务器,常规的手动配置SSH互信步骤如下: 使用ssh-keygen生成本地ssh key(mha01),生成的 ...
- Ansible批量更新远程主机用户密码 (包括Ansible批量做ssh互信)
按照集团运维信息安全制度, 需要每个一段时间对线上服务器密码进行一次变更,通过shell脚本部署比较繁琐,所以决定采用ansible脚本对远程主机root密码进行批量重置,该脚本已经在稳定运行在正式环 ...
- ezdpl:完全依赖脚本和ssh的自动化部署方案
ezdpl是easy deployment的简写,使用简单的ssh和shell脚本来部署.升级.回滚和重新配置linux服务器. 重要提示:警告:这个项目还处于测试过程中,请仔细阅读说明,并且自己承担 ...
- Linux快速配置集群ssh互信
之前在<记录一则Linux SSH的互信配置过程>.<Vertica 7.1安装最佳实践(RHEL6.4)>中,都分别提到了配置ssh互信的方法,本文在此基础上进一步整理配置s ...
- linux配置ssh互信
公钥认证的基本思想: 对信息的加密和解密采用不同的key,这对key分别称作private key和public key,其中,public key存放在欲登录的服务器上,而private key为特 ...
- Salt自动化之自动更新Gitfs-爱折腾技术网
Salt自动化之自动更新Gitfs-爱折腾技术网 pygit2
- 制作ssh互信的docker镜像
Dockerfile FROM ubuntu:16.04 # package RUN apt-get update; apt-get -y install ssh COPY ssh_config /e ...
随机推荐
- 编写适合windows 7 平台的软件,给程序添加UAC认证
Delphi程序必须在资源里面嵌入MANIFEST信息 一. 首先编辑一个文件,内容如下: <?xml version="1.0" encoding="UTF-8& ...
- 一个简单的web服务器例子
一个简单的web容器小例子,功能十分简单,只能访问静态资源,对于新手来说还是有一定的意义.主要分三个类 1.server类:主要功能开启socketServer,阻塞server,接收socket访问 ...
- 使用Eclipse把java文件打包成jar 含有第三方jar库的jar包
使用Eclipse把java文件打包成jar 含有第三方jar库的jar包 网上打包说用eclipse安装fat jar插件,但是貌似现在都不能用了,所以我只能按照eclipse自带的方法打包了. ...
- 菜鸟日记之JSP1
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsyste ...
- 利用c++操作XML,主要是内部循环方法的使用
本文主要分享的是循环方法的使用,设置XML节点属性,用了3种循环方法. XML文件: <?xml version='1.0' encoding='utf-8' ?><root> ...
- 转 C#开发微信门户及应用(1)--开始使用微信接口
微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为日常计划的重要事情之一了.本系列文章希望从一个循序渐进的角度上,全面介 ...
- http与https差异
HTTPS和HTTP的区别: https协议需要到ca申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议 http的连接很 ...
- 安装指南【win10下安装fedora】
系统安装 安装准备 系统:fedora .Win 10 硬件:U盘一枚.PC一台 软件:UltraISO 安装步骤 使用UltraISO将镜像写入U盘 window10使用磁盘管理,空出一个未分配的区 ...
- 12个Icon图标资源网站
1.除了Icon以外,还有很多不错的UI设计素材. 地址:http://worldui.com/2.除了免费Icon资源下载以外,还提供Icon定制的付费服务.地址:http://dryicons.c ...
- python 简单谈谈“类”
文章出处:http://www.cnblogs.com/winstic/,请保留此连接 面向对象是python语言的一大特色,而类又是面向对象编程的核心 先来一段关于类的声明: class myCla ...