使用paramiko模块批量修改Linux主机的密码

1、paramiko介绍

paramiko是基于python实现的一个SSH远程安全连接,支持认证及秘钥方式。可实现远程命令执行、文件传输、中间SSH代理等功能。

2、安装paramiko模块

shell>pip install paramiko

3、批量修改Linux主机密码脚本

#!/usr/bin/env python
#coding:utf-8
#author:weixiaoxin

import paramiko

f=open(‘server.txt‘,‘r‘)

for i in f:
    L=i.split()
    hostname=L[0]
    username=L[1]
    password=L[2]
    newpassword=L[3]
    port=22

    try:
        ssh=paramiko.SSHClient()
        ssh.load_system_host_keys()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname=hostname,username=username,password=password,timeout=5)
        ssh.exec_command(‘echo "%s"|passwd --stdin root‘%newpassword)
        print hostname+" ok!"
        ssh.close()
    except Exception as e:
        print hostname+":"+str(e)

f.close()

4、server.txt文件格式

将需要修改密码的主机,以下列格式填写。

192.168.1.1 root 123 456
192.168.1.2 root 123 456
192.168.1.3 root 123 456

第一列为主机的ip地址
第二列为主机的用户名
第三列为主机的原始密码
第四列为主机的新密码

原文地址:http://blog.51cto.com/weixiaoxin/2063323

时间: 2024-11-05 18:38:57

使用paramiko模块批量修改Linux主机的密码的相关文章

python批量修改linux主机密码

+++++++++++++++++++++++++++++++++++++++++++标题:python批量修改Linux服务器密码时间:2019年2月24日内容:基于python实现批量修改linux主机密码.作者:Bruce重点:python使用SSH模块+循环操作,实现linux主机密码批量修改.注意:本脚本是在实验环境下生成的,如果线上使用,请先进性多次测试,防止出现问题.+++++++++++++++++++++++++++++++++++++++++++1. 包含文件1.1 脚本文件

自动运维模块批量监控linux主机

1.修改linux agent解压即用包用解压缩软件打开zabbix_linux_agent.zip并进入到以下目录: 右键install_zabbix_linux_agent.sh 选择 在记事本打开,在参数区找到Agent_Server参数,并且值改为zabbix服务器的地址.结果如下图: 保存并更新到压缩包中: 2.自动运维模块添加主机管理操作步骤:自动运维->主机管理->新增信息填写:分组名:Linux ,主机名:192.168.1.10 ,IP:192.168.1.10 ,操作系统:

如何修改linux主机名才能永久生效?

如何修改linux主机名才能生效?很多人使用hostname 主机名 来修改,其实这个只是做为暂时的,重启后将恢复到原来的名字.很多人说修改/etc/hosts文件,其实这个文件里的主机名只是为来提供给dns解析的.如果你用不上dns,只需要修改主机名,那修改这个没用.其实是修改这个文件etc/sysconfig/network这个文件里的主机名.NETWORKING=yesHOSTNAME=localhost.localdomain(主机名) 完整步骤:第一步查看当前主机名称:#hostnam

转: 如何用linux命令修改linux主机ip网关子网掩码

linux一般使用ifconfig命令修改linux主机的ip.网关或子网掩码. 1.命令格式: ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设备.当网络环境发生改变时可通过此命令对网络进行相应的配置. 3.命令参数: up 启动指定网络设备/网卡. down 关闭指定网络设备/网卡.该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除. arp 设置指定网卡是否支持ARP

如何修改Linux主机名

Linux 下什么都比较麻烦,就连修改主机名也不例外.我们就下文说一下具体方法. Linux 安装好后,其默认的主机名是 localhost.修改 Linux 主机名需要3步. 使用 hostname 修改当前主机名. hostname new-hostname 修改 /etc/sysconfig/network 配置文件,以便下次重启的时,使用新的主机名. 打开 /etc/sysconfig/network 文件,修改 HOSTNAME=new-hostname.domainname. 修改后

批量登陆linux主机脚本

#test.sh  #!/bin/bash  dir=/home/test  while read line  do  host=`echo $line| awk '{print $1}'`  passwd=`echo $line | awk '{print $2}'`  $dir/expect_ssh.sh $host $passwd &  done < $dir/host.txt  #expect_ssh.sh  #!/usr/bin/env expect  set HOST [lind

修改Linux主机名与IP之间的映射关系

linux主机版本: Distributor ID: UbuntuDescription: Ubuntu 14.10Release: 14.10 一.修改linux主机名 1.使用hostname命令可以查看当前主机名 2.在 /etc/hostname文件中修改主机名后保存(有的版本在/etc/sysconfig/network中修改主机名) 二.修改主机名与IP之间的映射 在/etc/hosts中修改主机名和IP之间的映射 完成这两部之后重启系统. 然后使用命令ping新的主机名 发现主机名

利用paramiko模块批量登录(执行命令/上传文件)

工作中由于服务器主机很多,如果手动的一台一台去添加ssh认证,效率太低了,而此脚本正是为了解决此问题 此脚本的实现的功能: 1.实现了(密码.ssh认证)单一主机登录和批量主机登录 2.实现了(密码.ssh认证)单一主机上传文件和批量主机上传文件(下载文件的原理和此一样) 3.主机批量添加ssh认证(这才是我的主要目的) 脚本的不足: 1.只能循环主机名 2.所有的主机的账号和密码都是一样的,不够灵活 有需求的朋友可以修改下代码,可以把主机.账号密码存放在一个文件中,循环读取文件 下面贴上代码吧

自动批量修改linux用户密码

通常会有多台服务器需要同时修改密码,此时可不必一台一台去操作,可以借用expect工具实现批量密码修改工作.涉及到四个文件,ip地址列表文件(iplist.txt),远程密码修改脚本(password.sh),复制时调用密码脚本scp.exp,密码修改主程序(chpasswd.sh),需将四个文件放置在/root目录下,如果放在其它目录,需修改脚本中对应的路径 在执行脚本的机器上安装expect,使用rpm包安装时需要依赖tcl包,也可使用yum安装,使用mkpasswd生成密码,一次生成一次,