Netmiko连接Cisco ASA进入Enable模式后自动进入CONF T问题求助
问题原因
这个异常是Netmiko的cisco_asa驱动默认初始化逻辑导致的:为了避免命令输出被截断,驱动默认会自动调整终端宽度参数,而部分版本的Cisco ASA不允许在特权(enable)模式下修改终端宽度,驱动会自动进入config模式执行配置命令,就出现了你遇到的自动跳配置模式的问题。
解决方案
方案1:禁用自动调整终端宽度行为(推荐)
直接在连接参数字典中新增adjust_tty_size: False参数,即可关闭自动改终端宽度的逻辑,不会触发进入配置模式:
def device1(): checkOnline = { "device_type": "cisco_asa", "host": swich1, "username": username, "password": password, 'secret': password, 'verbose': False, "session_log": 'dmz1_output.txt', # 新增以下参数即可 "adjust_tty_size": False } with ConnectHandler(**checkOnline) as net_connect: net_connect.enable() out1 = net_connect.send_command("show interface detail", use_textfsm=True) print(out1)
方案2:手动退回特权模式
如果不想修改连接参数,也可以在进入enable模式后手动执行end命令退回特权模式,再执行业务命令:
with ConnectHandler(**checkOnline) as net_connect: net_connect.enable() # 手动退回特权模式 net_connect.send_command("end", expect_string=r'#') out1 = net_connect.send_command("show interface detail", use_textfsm=True) print(out1)
两种方案修改后都可以让设备停留在特权模式执行后续的show命令,不会再自动进入config模式。
内容的提问来源于stack exchange,提问作者user16514127
相关产品推荐
相关产品推荐

