热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用PythonParamiko库批量更新多台服务器的登录密码

本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。

废话不多说,直接上代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import paramiko


def connect_modify(ip, username, password, newpass):
    paramiko.util.log_to_file('syslogin.log')
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    try:
        client.connect(hostname=ip, username=username, password=password)
    except:
        print(ip+'network not connect')
        return 0
    stdin, stdout, stderr = client.exec_command('echo %s | passwd --stdin %s ' % (newpass, username))
    result = stdout.read(), stderr.read()
    for line in result:
        print(line.decode('utf-8'))
        print(ip, 'OK!')
        client.close()
        return 1


def main():
    try:
        with open('hosts') as f:
            for item in f:
                 item = item.strip().split(',')
                 ip = item[0]
                 username = item[1]
                 password = item[2]
                 newpass = item[3]
                 connect_modify(ip, username, password, newpass)
    except Exception as e:
         print(e, 'not open password configfile')


if __name__ == '__main__':
    main()

 

需要有一个hosts文件被读取

文件格式为:

192.168.1.1,root,123456,654321

英文逗号分隔

也可以做成多线程,更快的执行


推荐阅读
author-avatar
我是黄小果1960
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有