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密码修改。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。