python批量修改ssh密码的实现


Posted in Python onAugust 08, 2019

由于工作需要本文主结合了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,old_password,new_password):
  # 建立一个sshclient对象
  ssh = paramiko.SSHClient()
  # 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  # 调用connect方法连接服务器
  #如果远程执行命令错误信息是b'the input device is not a TTY\n' 去掉docker exec -it 中的t就好了
  try:
    ssh.connect(hostname=Ip, port=22, username=user, password=old_password,timeout=5)
    #ubuntu修改密码两种方法
    #方法一
    # command1 = "echo '%s:%s' | chpasswd"%(user,new_password)
    # stdin, stdout, stderr = ssh.exec_command(command1)
    # out, err = stdout.read(), stderr.read()
    # if err != '':
    #   print(err)
    #
    # else:
    #   print(out)
    # # 关闭连接
    # ssh.close()
    #方法二
    command = "passwd %s" %(user)
    stdin, stdout, stderr = ssh.exec_command(command)
    #\n模拟回车 输两次密码
    stdin.write(new_password + '\n' + new_password + '\n')
    out, err = stdout.read(), stderr.read()
    successful = 'password updated successfully'
    #print(out,err)
    if successful in str(err):
      print(Ip + " 密码修改成功!")
    else:
      print('\033[31m错误:\033[0m' + str(err))
      print(Ip + " 密码修改失败!")
    # 关闭连接
    ssh.close()
  except paramiko.ssh_exception.AuthenticationException as e:
    print(Ip + ' ' + '\033[31m账号密码错误!\033[0m')
    with open('nossh.txt','a') as f:
      f.write(Ip + '\n')
  except socket.timeout as e:
    print(Ip + ' ' + '\033[31m连接超时!\033[0m')
    with open('timeoutssh','a') as f:
      f.write(Ip + '\n')
def Red_Excel(IP):
  import sys
  import time
  file = r'E:\xxx.xlsx'
  pd.set_option('display.max_columns', None)
  pd.set_option('display.max_colwidth', 1000)
  n = pd.read_excel(file,sheet_name='xxx')  #表格中的sheet名
  #print(n.values)
  #显示含某字段的特定行
  n1 = (n.loc[n['IP']==IP])
  if not n1.empty:
    n2 = n1.values
    ip = n2[0][1]
    user = n2[0][4]
    password_old = n2[0][5]
    password_new = n2[0][22]
    houtai = n2[0][16]
    print('IP:%s 账号:%s 旧密码:%s 是否后台:%s 新密码:%s' % (ip, user, password_old, houtai,password_new))
    demo(ip,user,password_old,password_new)
  else:
    print('记录表无此IP!')

if __name__ == "__main__":
  with open('ip.txt') as f:
    for i in f:
      ip = i.split('\n')[0]
      Red_Excel(ip)

此代码可以适当修改,进行单独的ssh密码修改。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
python二进制文件的转译详解
Jul 03 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Python 共享变量加锁、释放详解
Aug 28 Python
Python中zip()函数的简单用法举例
Sep 02 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 Python
Python 操作 MySQL数据库
Sep 18 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
Python中zipfile压缩包模块的使用
May 14 Python
python图片灰度化处理的几种方法
Jun 23 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 #Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 #Python
python按行读取文件并找出其中指定字符串
Aug 08 #Python
python实现PID算法及测试的例子
Aug 08 #Python
python开头的coding设置方法
Aug 08 #Python
pycharm 安装JPype的教程
Aug 08 #Python
Python学习笔记之lambda表达式用法详解
Aug 08 #Python
You might like
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
JavaScript面象对象设计
2008/04/28 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python 函数基础知识汇总
2018/03/09 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python并发和异步编程实例
2018/11/15 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
房地产端午节活动方案
2014/08/24 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
委托公证书格式
2015/01/26 职场文书
学校推普周活动总结
2015/05/07 职场文书
python中的3种定义类方法
2021/11/27 Python
JavaScript的Set数据结构详解
2022/02/18 Javascript
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android
Django框架之路由用法
2022/06/10 Python