多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

H3C交换机Console密码忘记怎么办?Boot Menu恢复实战详解

H3C交换机Console密码忘记怎么办?Boot Menu恢复实战详解 前阵子给客户做设备盘点机柜里一台H3C S5130-28S-EI的Console口密码没人知道。前任管理员离职没留交接文档设备业务还在跑但Console进不去意味着端口隔离、光模块替换后的状态确认、临时加个ACL这类操作全都做不了。给厂家打过技术支持电话答复很干脆Console口物理接入走Boot Menu恢复。这篇就把整个过程展开讲覆盖V5和V7两代主流Comware系统从原理到操作再到坑一次说清楚。如果你手头正好有台密码失联的华三交换机这篇文章可以省掉你大半天的排查时间。1. 先说清楚清密码到底在清什么以及适用场景1.1 密码不是加密在硬件里而是存在配置文件中华三交换机基于Comware系统所有运行配置最终都保存在flash里的启动配置文件中常见文件名是startup.cfg。Console口的登录认证、local-user本地用户表、super密码这些认证相关配置全部写在这份配置文件里设备每次上电都会加载它来生效。所以清Console口密码这件事本质上不是破解密码算法也不是硬件短接而是让设备在启动阶段不加载配置文件里的认证策略。这个思路很关键理解了它就能明白为什么后面所有操作都围绕着Boot Menu展开。1.2 哪些场景会让人不得不动Boot Menu以我经手的情况来看清Console密码的需求主要集中在四类运维交接断层。管理员离职没留下任何运维文档设备密码跟着一起失传这是最典型的情况。二手设备采购。从拍卖、二手市场收回来的设备上一手使用方已经联系不上设备登录认证被锁住。密码被误改或忘记。某次调试时随手改了个密码后来怎么也想不起来又不敢随便重启设备。设备远程无法恢复。只开放了管理VLAN但SSH/Telnet被禁或者远程登录密码也一样丢失能救的就只有物理Console口。另外还有种隐蔽情况设备Console口配置了认证业务又要求不能停机太久。此时如果密码丢了绝大多数人第一反应是找原厂或者重置设备其实Boot Menu路径就能解决。1.3 password-recovery开关决定你能否恢复Comware系统里有一个非常关键的开关——password-recovery。默认状态下它使能允许通过Boot Menu中的跳过配置文件或跳过登录认证等方式恢复密码。但如果设备在正常配置阶段被人执行过[H3C] undo password-recovery enable或者在新版本里配置了password-recovery disable那么Boot Menu里的跳过选项会被隐藏或者直接不可用此时Boot Menu这条路就被堵死了只能联系原厂技术支持处理。所以动Boot Menu之前如果设备还能登录进去建议先看一眼当前配置里password-recovery的状态。如果已经是disable去Boot Menu折腾也没意义别浪费那几次重启窗口。2. 开工前的三项确认Console线、终端参数和系统版本2.1 Console物理连接与串口参数少一个都白搭清Console密码必须用真·物理连接Telnet、SSH、Web全部没用因为后面要操作的是设备启动过程。准备工作如下一条Console线。现在笔记本基本没有串口多数需要用USB转Console线芯片方案建议优先找FTDI的稳定CH340也不是不能用就是驱动偶尔抽风尤其是在Win10/Win11下会出现识别到COM口但数据完全不回显的情况。确认驱动装了、COM口号对了。插上USB转Console线后在设备管理器里看端口号然后用SecureCRT、Xshell、PuTTY或MobaXterm新建Serial会话。串口参数必须按H3C默认来波特率9600数据位8停止位1无校验无流控。这里最容易被忽略的是无流控很多终端软件默认把RTS/CTS打开了会导致按键发送不出去或者乱码。我遇到过一次CtrlB死活没反应折腾半天发现是SecureCRT里Flow Control勾了RTS/CTS。连接好后给交换机上电能看见启动日志并且按下回车有H3C提示符说明Console链路是通的。如果没反应先换COM口、换线、换终端软件逐项排查别急着进入下一步。2.2 分清V5和V7Boot Menu长什么样Comware版本不同Boot Menu的菜单结构差异很大。V5时代设备型号如S3600V2、S5120、S5500-EI等Boot Menu是传统的BOOTROM MENU风格V7设备如S5130、S5560、S6800等Boot Menu是EXTENDED-BOOTROM MENU风格。V5设备典型的Boot Menu长这样BOOTROM MENU 1 Download Application File To Flash 2 Select Application File To Boot 3 Display All Files In Flash 4 Delete File From Flash 5 Modify Bootrom Password 6 Enter Bootrom Upgrade Menu 7 Skip Current Configuration File 8 Set Password Recovery Policy 0 Reboot V7设备则是EXTENDED-BOOTROM MENU 1 Boot System 2 Boot System With The Sub-file 3 Enter Bootrom Upgrade Menu 4 Modify Bootrom Password 5 Skip Authentication For Console Login 6 Skip Current Configuration File 0 Reboot 不同型号、不同软件版本选项编号可能略有偏移但关键字很明确Skip Current Configuration File对应跳过配置文件Skip Authentication For Console Login对应跳过Console登录认证。看到哪个提哪个就行。2.3 能进系统就先备份配置别等进不去了再后悔这一步很多人会跳过但我觉得必须单独拿出来说。如果设备当前还能登录进去哪怕是远程先做一件稳赚不赔的事把当前配置完整导出来。H3C display current-configuration把输出复制保存成文本文件或者用save先存一份配置再用FTP/TFTP把startup.cfg备份到本地。操作清密码的过程中最怕出现密码清了一整台设备的配置也全没了这种事故。有备份在手后面不管哪个方案心里都有底。如果现在连系统都进不去那没关系用后面提到的跳过配置方式进去后第一时间执行display saved-configuration也能把原启动配置内容调出来看只要不保存空配置原始配置就一直躺在flash里不会丢。3. 进入Boot Menu时机、密码和两种思路的取舍3.1 CtrlB按不准重新来就是进入Boot Menu需要在设备上电启动阶段按下快捷键。设备加电后Console口会在几秒内打印倒计时提示典型输出类似Press CtrlB to enter Boot Menu: 3这行字出现后有一个大概3秒的窗口期。操作要领是看到提示后马上按住Ctrl键不松再按一下B键然后松开。如果错过了窗口设备继续正常启动那就断电重新上电再来一次不会损坏任何东西。有些设备倒计时是5秒个别高端型号可能是10秒具体看启动日志。有个小细节某些终端软件里CtrlB可能被本地快捷键占用。比如我用过的某个终端软件里CtrlB默认是打开书签栏我一开始怎么按都进不去后来在终端设置里把它禁用掉才正常。遇到按键没反应的先确认软件里有没有抢占快捷键。3.2 BootROM密码大部分情况直接回车进入Boot Menu前设备会提示输入BootROM密码。H3C设备出厂默认BootROM密码为空所以绝大多数情况下直接回车就能进菜单。不过得提醒一句BootROM密码不是只能看不能改的摆设运维过程中有人可能进入Boot Menu把BootROM密码改掉。如果想不起来BootROM密码不要反复乱试因为有些设备对错误尝试有次数限制输错了可能直接Reboot甚至锁定。部分型号的物理Reset键可以恢复BootROM默认密码但具体是否支持、按多久得对着设备手册来不是所有型号都有这个功能。实际操作中我遇到过一台改过BootROM密码的S5560最后是靠面板Reset键恢复才进的菜单。3.3 两种思路怎么选跳过配置 vs 跳过认证Boot Menu里有两个恢复入口很多人第一次看会分不清这里直接对比清楚。对比项跳过当前配置文件启动跳过Console登录认证启动适用版本V5、V7通用大部分V7设备原配置是否加载不加载运行配置为空正常加载业务配置保留登录后状态无密码直进系统无需密码直进系统会不会丢配置会需重建或从备份导入不会原配置完整保留推荐程度V5设备必选V7兜底方案V7设备首先考虑简单说能用跳过Console认证就不要去碰配置文件。保留一份能用的业务配置只动认证部分风险最小。V5老设备没有跳过Console认证的选项那就只能走跳过配置文件的路配合备份重建配置。4. V5设备实操跳过配置文件启动后的完整密码重置链路4.1 菜单跳转和确认项以V5设备为例具体操作是这样的Console线连好终端软件打开。给交换机断电重新上电。出现Press CtrlB to enter Boot Menu: 3时按CtrlB。提示输入BootROM密码时直接回车。在Boot Menu菜单里输入7选择Skip Current Configuration File。设备会问是否确认跳过配置文件输入Y并回车。之后设备开始启动日志里会多出一行类似The Switch is starting up with the configuration file skipped! Please check if the configuration file is correct.系统启动完成后直接进入命令行用户视图提示符就是H3C这种。因为配置被跳过了整个系统处于无密码、无业务配置的裸奔状态操作目的已经达到了一半。4.2 空配置状态下先别急着save进入系统后第一反应可能是赶紧把密码改了然后保存但这里有个非常大的坑当前运行配置是空的如果你这时候直接执行saveflash里的startup.cfg就会被这份空配置覆盖原始配置彻底完蛋。正确的节奏是先执行display saved-configuration把flash里保存的原启动配置内容调出来。直接通过这个命令翻看输出或者复制保存到本地先把原配置的关键部分掌握住。判断这台设备需不需要恢复原来的业务配置。如果只是临时测试机直接重建即可如果是生产设备就把备份出来的原配置在重建后对照恢复或者手写关键部分。确认没问题后再设置新密码并保存。这一步最忌手滑。我见过同事在跳过配置后顺手敲了个save然后整台设备的VLAN、接口IP、路由全没了客户那边业务直接中断。清密码十分钟的事恢复配置花了一晚上。4.3 V5重设Console密码的两套命令V5清密码后重设Console密码取决于原认证方式。常见的两种如果Console口原来用的是authentication-mode password直接进user-interface重设口令H3C system-view [H3C] user-interface console 0 [H3C-ui-console0] authentication-mode password [H3C-ui-console0] set authentication password simple NewPass2024如果原Console口用的是本地用户认证即authentication-mode scheme那要改的是local-user的密码H3C system-view [H3C] local-user admin [H3C-luser-admin] password simple NewPass2024 [H3C-luser-admin] service-type terminal需要特别注意service-type这条。如果原来的admin用户还承担Telnet或SSH登录直接重新写service-type terminal会把之前的类型覆盖掉建议一次写全[H3C-luser-admin] service-type terminal ssh telnet修改完成后一定记得保存H3C save系统提示是否保存配置时输入Y文件名直接回车或输入startup.cfg如果提示覆盖已有文件继续确认。保存不成功重启之后密码还是老样子。5. V7设备实操用跳过Console认证的方式保留配置清密码5.1 一次搞定选Skip Authentication for Console LoginV7设备上电进入Boot Menu后优先选Skip Authentication for Console Login也就是菜单里的5。这个选项只跳过Console登录认证环节不触碰配置文件所以原VLAN、接口IP、路由表、ACL全部照常加载。启动后不用输入密码直接出现命令行提示符。它和跳过配置文件最大的区别在于业务配置全程在线只有Console认证被临时放行。这意味着你不需要重建任何配置压力小很多。流程如下通电并进入Boot Menu。选择5 Skip Authentication for Console Login。设备启动完成后直接进入系统视图。检查Console认证方式然后重设密码。保存配置重启验证。5.2 重设密码时V7的密码复杂度约束V7设备重设密码时最让人头疼的不是命令不会写而是密码策略。V7默认对本地用户密码有复杂度要求一般要求至少10位并且包含大写字母、小写字母、数字、特殊字符中的至少两类。如果设置得过于简单命令行会直接拒绝Error: Password too short or too simple.所以不要在V7上尝试H3C123这种短密码大概率被弹回来。可以用H3CAdmin2024这种带大写、小写、数字、特殊字符的组合。如果Console口原来的认证是password方式H3C system-view [H3C] line console 0 [H3C-line-console0] authentication-mode password [H3C-line-console0] set authentication password simple H3CAdmin2024如果是本地用户认证H3C system-view [H3C] local-user admin [H3C-luser-manage-admin] password simple H3CAdmin2024 [H3C-luser-manage-admin] service-type terminal [H3C-luser-manage-admin] authorization-attribute user-role network-admin注意V7里authorization-attribute user-role network-admin这一行给本地用户绑定管理员角色。如果用户没有这个角色登录后可能连system-view都进不去只能看着H3C干瞪眼。5.3 保存并重启验证同样改完后不能忘保存H3C save H3C reboot重启后会自动进入正常的登录认证流程。此时要验证两件事一是新密码能正常登录Console二是设备业务配置完整加载不出现接口down、VLAN丢失之类的问题。V7走Skip Auth路径的话第二件事基本不会被影响但还是要看一眼踏实。如果重启后发现密码还是老样子多半是save没成功或者保存时选了非启动配置文件。排查思路先display startup看当前启动配置文件是什么再display saved-configuration确认文件里存的认证密码是不是新设置的。6. 经验汇总清Console密码最容易翻车的细节6.1 几个坑踩一次就长记性我在多次清Console密码过程中翻过不少车挑几个典型的说坑一终端软件流控开着CtrlB发不出去。排障半天最后发现只是RTS/CTS勾选的问题关掉立刻进菜单。坑二跳过配置文件后手滑save。直接导致整台设备配置清空后来必须先display saved-configuration备份再操作。坑三BootROM密码猜来猜去。连续输错导致设备直接重启只能重新计时进菜单除了浪费时间还容易把人搞慌。坑四V7上设置的密码不符合复杂度规则。被Password too short or too simple拦下来临时换了好几次才通过。坑五local-user的service-type覆盖。原配置里有SSH结果重设terminal后把SSH登录方式冲掉远程也上不去了。坑六忘记确认password-recovery状态。在disable的设备上折腾Boot Menu浪费了不少时间才发现此路不通。坑七密码里用了容易混淆的字符。比如l和1、O和0告诉别人密码的时候反复说不清建议设置时避开这类字符。6.2 清密码与清配置的边界处理很多人一听清除密码直接就把整个配置给reset了。实际上这两件事的边界要分清楚。如果目标是我要重新配置这台设备那直接用reset saved-configuration再重启一切归零从头开始配干净利落。如果目标是我要保留现有业务配置只是把密码找回来或者改掉那就应该优先走Skip Authentication方案如果设备是V5没有这个选项就必须先备份原配置再用Skip Configuration方案启动然后手工恢复业务配置。千万别在没备份的情况下跳过配置文件然后把save一敲、重启一看——密码没了配置也没了对着空设备重新配一晚上心情直接崩溃。6.3 收尾检查清单最后把这个操作收尾时我建议按这个清单过一遍确认新密码能正常登录且字符没写错。确认local-user的service-type没有覆盖掉原来的登录方式。确认用户角色权限够用尤其V7的network-admin角色。确认保存成功display startup能看到startup.cfg存在且为下一次启动加载。确认业务配置完整接口、VLAN、路由、ACL、NTP、SNMP这些核心项在重启后都正常。如果动了配置文件核对一遍与备份的差异避免遗漏关键配置。我自己处理这类问题的习惯是不管V5还是V7先确认手头有没有Console线和串口软件再确认设备能不能物理断电能进系统就先备份不能进就按Boot Menu的路径走能Skip Auth就绝不去动配置文件。密码清除这种事步骤本身不难真正容易出事的是中间环节的草率尤其是跳过配置之后顺手save一键清空。多备份、少覆盖、验证完再走基本就不会翻车。
返回列表