寻觅生命中的那一片浅草......

每日存档 一月 16th, 2011

SecureCRT批量配置使用会话key

部分服务器使用单独的key,为了方便,写了这2个脚本

2个版本,都需要Python
Windows版
win_crt_conf.py

cygwin版
cygwin_crt_conf.py

cygwin下可以用find+sed+unix2dos实现,但真的太慢了,Python快啊

2个文件要修改的地方是一样的

需要使用单独key的SecureCRT配置文件目录
crt_conf_dir = ‘E:\\CRT_CONF’

定义key文件的位置,identify为private key的名字
key_path_new = ‘S:”Identity Filename”=E:\CRT_KEY\identify’

原理,每个服务器配置都定义了使用全局key还是会话key
这个是使用全局key
D:”Use Global Public Key”=00000001
定义使用的key文件路径
S:”Identity Filename”=

定义使用会话key
D:”Use Global Public Key”=00000000

E:\CRT_KEY\identify为要使用的会话key
S:”Identity Filename”=E:\CRT_KEY\identify
win_crt_conf.py
[python]
#!D:\\Python27\\python
#-*-coding=utf-8-*-

import os,sys,re

crt_conf_dir = ‘E:\\CRT_CONF’
global_public_key_true = ‘D:”Use Global Public Key”=00000001’
global_public_key_false = ‘D:”Use Global Public Key”=00000000’
key_path_old = ‘S:”Identity Filename”=’
key_path_new = ‘S:”Identity Filename”=E:\CRT_KEY\identify’

re_global_public_key = re.compile(global_public_key_true,re.DOTALL)
re_key_path = re.compile(‘S:”Identity Filename”=(.*)’)

os.chdir(crt_conf_dir)

c1 = os.walk(os.getcwd())

filelist = []

for c2 in c1:
for c3 in c2[2]:
filelist.append(os.path.join(c2[0],c3))

for filename in filelist:
fileread = open(filename,’r’)
filer = fileread.read()
pub_key = re.sub(re_global_public_key,global_public_key_false,filer,0)
key_path = re.sub(re_key_path,key_path_new,pub_key,0)
fileread.close()
fileok = open(filename,’w’)
fileok.write(key_path)
fileok.close()
print filename,’替换成功!’
[/python]

cygwin_crt_conf.py

[python]
#!/usr/bin/python
#-*-coding=utf-8-*-

import os,sys,re

crt_conf_dir = ‘/cygdrive/e/CRT_CONF’
global_public_key_true = ‘D:”Use Global Public Key”=00000001’
global_public_key_false = ‘D:”Use Global Public Key”=00000000’
key_path_old = ‘S:”Identity Filename”=’
key_path_new = ‘S:”Identity Filename”=E:\CRT_KEY\identify’

re_global_public_key = re.compile(global_public_key_true,re.DOTALL)
re_key_path = re.compile(‘S:”Identity Filename”=(.*)’)

os.chdir(crt_conf_dir)

c1 = os.walk(os.getcwd())

filelist = []

for c2 in c1:
for c3 in c2[2]:
filelist.append(os.path.join(c2[0],c3))

for filename in filelist:
fileread = open(filename,’r’)
filer = fileread.read()
pub_key = re.sub(re_global_public_key,global_public_key_false,filer,0)
key_path = re.sub(re_key_path,key_path_new,pub_key,0)
fileread.close()
fileok = open(filename,’w’)
fileok.write(key_path)
fileok.close()
print filename,’Replace successful!’
[/python]

主要参考了http://blog.591by.com/show-214-1

2011年一月
« 12月   3月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31