python批量修改ssh密码的实现
由于工作需要本文主结合了excel表格,对表格中的ssh密码进行批量修改
以下是详细代码(python3):
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' #!/usr/bin/envpython #-*-coding:utf-8-*- importparamiko importsocket importpandasaspd defdemo(Ip,user,old_password,new_password): #建立一个sshclient对象 ssh=paramiko.SSHClient() #允许将信任的主机自动加入到host_allow列表,此方法必须放在connect方法的前面 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #调用connect方法连接服务器 #如果远程执行命令错误信息是b'theinputdeviceisnotaTTY\n'去掉dockerexec-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() #iferr!='': #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='passwordupdatedsuccessfully' #print(out,err) ifsuccessfulinstr(err): print(Ip+"密码修改成功!") else: print('\033[31m错误:\033[0m'+str(err)) print(Ip+"密码修改失败!") #关闭连接 ssh.close() exceptparamiko.ssh_exception.AuthenticationExceptionase: print(Ip+''+'\033[31m账号密码错误!\033[0m') withopen('nossh.txt','a')asf: f.write(Ip+'\n') exceptsocket.timeoutase: print(Ip+''+'\033[31m连接超时!\033[0m') withopen('timeoutssh','a')asf: f.write(Ip+'\n') defRed_Excel(IP): importsys importtime 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]) ifnotn1.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__": withopen('ip.txt')asf: foriinf: ip=i.split('\n')[0] Red_Excel(ip)
此代码可以适当修改,进行单独的ssh密码修改。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。