网工批量修改SecureCRT会话密码脚本
Posted Romin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网工批量修改SecureCRT会话密码脚本相关的知识,希望对你有一定的参考价值。
需求:SecureCRT是网络运维人员常用的一个软件工具,但是每次修改3A密码后,所有保存在SecureCRT里面会话的密码都要修改,看了网络的一些修改方法,有些让你破解原密码的,有些是linux的修改方式,所以写个脚本分析给广大网工,用于修改网络主机的SecureCRT密码;复制粘贴就可以使用,转载记得粘贴出处
修改原理:我们需要把SecureCRT的Sessions密码全部换成新密码就行了,但是这个密码是加密的
SecureCRT的配置文件通常以.ini文件命名,保存在Sessions目录里面,该目录可以通过Options-> Global Options-> General-> Configuration Paths里面查看,打开配置文件可以看到保存的用户名Username和密码Password V2选项;我们可以先修改自己的3A密码,然后登录一台主机A作为模板机,登录的时候SecureCRT会提示密码错误,然后输入新密码后,这台主机A的这个A.ini配置文件里面的密码就是加密后的新密码,我们要把这个密码复制替换自己SecureCRT的Sessions里面所有会话的密码部分;那样就可以解决自己不知道加密后密码问题。
Python配置脚本以及该脚本的用法说明
只需要复制该脚本,把file_path_base的路径指向自己修改过新密码的主机配置,inrootpath的路径指向SecureCRT的Sessions目录,然后执行该脚本即可;
温馨提示:作为运维人员,要时刻懂得备份配置,记得备份自己原本的Sessions目录,万一炸锅了还能恢复一下,同理这个脚本也可以用来修改linux主机的密码,只是要自己稍作修改
参考:Python批量修改SecureCRT会话密码 - baby神 - 博客园 (cnblogs.com)
搜索批量修改SecureCRT密码基本是搜到这篇,只是一开始我没认真看他的代码,他代码写的比我简洁多了,我只是实现了功能,代码基本原理就是遍历整个目录,修改.ini文件里面的密码
import os def change_crtPw(file_path_base, inrootpath): """ :param file_path_base: 以那个配置文件的密码为基准 :param inrootpath: CRT的session目录路径 :return: 无返回值 """ f = open(file_path_base) # 返回一个文件对象 for line in f: try: #需要提取出这个文件的密码,Monitor Password好像是没啥用的,反正套路都一样,需要提取啥都在这写,但是这个continue要写上,不然下面会重复匹配到这个 if line.find("\\"Monitor Password V2\\"") != -1: Monitor_PW = line.split("=")[1].strip() continue #这个才是真的需要修改的密码,就是去你的基准文件里面,找到加密后的密码,没必要自己写个算法去破解再加密;同理你也可以匹配出用户名来 if line.find("\\"Password V2\\"") != -1: PW = line.split("=")[1].strip() break except Exception as e: print(\'获取基准配置文件失败\') #遍历整个文件目录 for root, dirs, files in os.walk(inrootpath): for file in files: file_path = os.path.join(root, file) # 这段代码的用处是把其他需要修改密码的文件配置抓出来,同时把密码修改为新密码,存在temp_config中 with open(file_path, \'r\', encoding=\'utf-8\') as tf1: temp_config = \'\' for t_line in tf1: try: if t_line.find("\\"Monitor Password V2\\"") != -1: temp_Monitor_PW = t_line.split("=")[1].strip() t_line= t_line.replace(temp_Monitor_PW, Monitor_PW) temp_config += t_line continue if t_line.find("\\"Password V2\\"") != -1: temp_PW = t_line.split("=")[1].strip() t_line= t_line.replace(temp_PW, PW) temp_config += t_line continue temp_config += t_line except Exception as e: print(\'修改配置失败\'.format(file)) #这段代码的意思是把修改过的配置文件全部写回到文件中,这样会清空原配置文件,重写配置 with open(file_path, \'w\', encoding=\'utf8\') as f: f.write(temp_config) f.flush() print(\'修改配置成功\'.format(file)) #基准配置文件,就是你这个配置文件的密码是准确的;这个地方是CRT的Session里面你修改过密码的一份主机配置文件 file_path_base = r"XXX\\XXX.ini" # CRT的SESSION目录,这个地方路径是sessions的目录 inrootpath = r\'xxx\\xxx\\Sessions\' change_crtPw(file_path_base, inrootpath)
以上是关于网工批量修改SecureCRT会话密码脚本的主要内容,如果未能解决你的问题,请参考以下文章
SecureCRT远程登录Unix主机时(telnet和ssh)能不能自动输入账号和密码,然后怎样让其自动执行脚本,谢谢啦