批量修改ssh配置的expect脚本

第一思路,用iptables把外网ssh的包DROP掉;
第二思路,用tcpwrapper把sshd的allow写死;
第三思路,修改sshd_config,只监听内网请求。

由于一些说不清楚的原因,iptables的办法没法用;而tcpwrapper占用CPU资源较多;所以最后决定用第三种办法。

公司服务器比较多,而且根据随机登录查看的结果,sshd_config内容居然还太不一样~~手工干了一天,改了两组服务器后,终于下定决心要整个全自动脚本出来干活…… 目前的办法是这样的:

cat ssh.exp


代码如下:

#!/usr/bin/expect -f
log_file exp.log
set timeout -1
set ipaddr [lrange $argv 0 0]
for {set i 1} {$i<4} {incr i} {
    spawn ssh $ipaddr
    expect {
        "*password:" break
        "to host" {sleep 2};
        sleep 3
    }
}
send "123456r"
expect "]#"
send "cd /etc/sshr"
send "cp sshd_config sshd_config.`date +%F-%T`.bakr"
send "sed -i /^ListenAddress.*$/d sshd_configr"
send "echo ListenAddress `/sbin/ifconfig eth0|awk '/inet /{print $2}'|awk -F: '{print $2}'` >> sshd_configr"
send "service sshd restartr"
send "exitr"
interact

cat do.sh

代码如下:

#!/bin/sh
for ip in `cat ip.lst`
do
    ./ssh.exp $ip > /dev/null 2>&1
done
cat exp.log | grep host | awk '{print $5}'|sort|uniq >> errorip
echo "以下IP无法修改";cat errorip

(0)

相关推荐

  • 批量修改ssh配置的expect脚本

    第一思路,用iptables把外网ssh的包DROP掉:第二思路,用tcpwrapper把sshd的allow写死:第三思路,修改sshd_config,只监听内网请求. 由于一些说不清楚的原因,iptables的办法没法用:而tcpwrapper占用CPU资源较多:所以最后决定用第三种办法. 公司服务器比较多,而且根据随机登录查看的结果,sshd_config内容居然还太不一样--手工干了一天,改了两组服务器后,终于下定决心要整个全自动脚本出来干活-- 目前的办法是这样的: cat ssh.e

  • python批量修改ssh密码的实现

    由于工作需要本文主结合了excel表格,对表格中的ssh密码进行批量修改 以下是详细代码(python3): ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' #!/usr/bin/env python #-*-coding:utf-8-*- import paramiko import socket import pandas as pd def demo(Ip,user

  • Linux下批量修改服务器用户密码方法步骤

    密码快要过期.由于机器数量众多,因此采用批量修改密码的方式来进行处理. 下面是具体步骤: 1.配置ssh免key # ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # ssh-copy-id 10.230.86.64 (由于只是需要单向的copy文件,因此我们配置63与64到91的boco用户免key即可) 2.测试免key是否配置成功 3.编写密码文件 将所有需要修改的用户与密码按下面格式写到文件里,注意中间不要有空行 vi userpasswdfile.t

  • expect实现批量修改linux密码脚本分享

    最近对linux批量执行的脚本很感兴趣,在网上到处找有关expect批量执行脚本,今天就给大家共享一个批量修改密码的脚本. 脚本内容: 复制代码 代码如下: #!/usr/bin/expect if { $argc<2 } {     send_user "usage: $argv0 <host file> <cmd file> \n"     exit }   # 机器列表数据格式:  IP  端口  旧密码  新密码 set hostfile    [

  • iOS通过shell脚本批量修改属性

    背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,除了我在上一篇文章中说道的在壳版本中注入混淆的代码,防止被苹果检测到内容太过雷同而导致审核被拒绝.还有另一种可行的方法是批量修改源文件中的类名.属性.方法名称等会在二进制文件中留下符号标记的信息,绕过苹果的机器审核. 这篇文章介绍的是如何使用脚本批量修改属性名称,后续还有系列的包括使用脚本批量修改类名称.方法名称等信息的文章. 结果 下面是执行脚本替换了属性的结果图,脚本把所有需要替换的属性添加了abc后

  • Shell脚本批量修改文件后缀名代码分享

    早上本想将一些照片上传到相册中,但是由于所有照片的扩展名都是JPG而不是小写的jpg,因此造成了"格式不正确"而不能上传照片.此刻就产生了这样一个问题:使用shell脚本如何批量将所有文件的扩展名JPG都改成小写的jpg? 既然要批量替换文件名,那么肯定得用一个for循环依次遍历指定目录下的每个文件.对于每个文件,假如该文件的名称为name.oldext,那么我们必须原始文件名中挖出name,再将它与新的文件扩展名newext拼接形成新的文件名name.newext.依照这样的思路,就

  • BAT脚本批量修改文件名的两种方法

    目录 一,先进入想要修改文件名的文件夹中,使用命令: 1.以示例文档为例进行说明 2.双击1.bat来生成yuan.xls文件,如下图: 二.直接通过BAT脚本实现 通过BAT脚本批量修改文件名的办法有两种: 一,先进入想要修改文件名的文件夹中,使用命令: dir /b "*.后缀名" > yuan.xls 从生成含有所需文件名的xls文件(即Excel文件),然后在xls文件中通过 CONCATENATE("ren ",A2," ",B2

  • Python实现批量修改xml文件的脚本

    今天分享一个我自己写的实用脚本,主要是将.xml文件进行批量的修改 首先,声明我并不是很了解.xml的相关知识,所以今天主要是以我遇到的问题来做个记录. 想要更多的了解xml,请看最后的资料分享. 效果展示: 因为这些是属于我们项目小组的,我也不清楚是不是有什么不能公开的,我就截取了一小部分,原本是用lambelme来修改的,但由于xml文件似乎读不进去,所以只有手动修改,将water改为blue(重要的是一个一个用记事本打开,手动修改),这时候我的第一生产力产生了,because I am l

  • MySQL8 批量修改字符集脚本

    目录 1. 批量修改库字符集 2. 批量修改表字符集 3. 批量修改列字符集 从低版本迁移到MySQL 8后,可能由于字符集问题出现 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) 错误,此时要修改对象的字符集. 1. 批量修改库字符集 change_database_characset.sql select concat('alter database ',sch

  • python批量修改交换机密码的示例

    1.通过pip安装python第三方模块paramiko pip install paramiko 2.创建脚本 ##导入paramiko.time.getpass模块 #!/usr/bin/python import paramiko import time import getpass ##通过raw_input()函数获取用户输入的SSH用户名并赋值给username username = raw_input('Username:') ##通过getpass模块中的getpass()函数获

随机推荐