H3C交换机忘记密码与恢复出厂设置
以H3C Comware V7交换机为例,说明忘记Console或本地用户密码时如何保留配置恢复登录,以及设备改作他用前如何备份并恢复出厂设置。
本文以 H3C Comware V7 交换机为主要示例。BootWare 菜单和按键提示会因型号、版本不同而变化,操作时应按菜单文字确认,不能只记菜单编号。
一、现场场景
很多人一提到交换机忘记登录密码就会想到恢复出厂设置,两者经常被混在一起,其实两者有完全不同的处理方式:
- 忘记密码,但原配置还要继续使用,可以只修改登录密码;
- 如果设备准备改作他用,确认原配置不再需要,才需要清空启动配置。
单纯的忘记密码最重要的是保住配置,如果在 BootWare 菜单中误选 Restore to Factory Default Configuration,原来的启动配置可能会被删除。
二、操作前准备
这两种操作都需要重启交换机,正在使用的端口会中断。我会先确认维护窗口,再准备:
- 一台带串口终端软件的运维电脑;
- 与交换机匹配的 Console 线;
- 设备准确型号和 Comware 版本;
- 最近一次配置备份;
- 新密码和业务验证人员。
Console 常用参数为 9600、8、N、1、无流控。如果现场设备使用的参数不同,以设备手册和现有记录为准。
能通过其他管理员账号登录时,不需要重启,也不要进入 BootWare,直接在命令行修改忘记密码的账号即可。
三、先判断是哪一种密码
常见情况有两种:
| 忘记的内容 | 常见表现 | 修改位置 | 接下来怎么处理 |
|---|---|---|---|
| 本地管理用户密码 | SSH 或 Console 输入用户名和密码后失败 | local-user 视图 |
还有其他管理员账号时看第四章第1节,否则看第五章 |
| Console 独立密码 | Console 只要求输入密码,没有用户名 | line console 0 视图 |
还能通过SSH管理时看第四章第2节,否则看第五章 |
如果还有其他管理员会话,可以先查看现有配置:
# 查看本地管理用户,确认用户名和允许使用的登录方式。
<HQ-Access-01> display local-user
# 查看当前配置,确认Console使用password还是scheme认证。
<HQ-Access-01> display current-configuration
scheme 表示使用用户名和密码认证,通常对应本地用户或认证服务器;password 表示 Console 只验证一条独立密码。
判断完成后,处理方向很简单:还有其他管理员账号可以登录,就按第四章修改忘记的密码;所有管理员账号和 Console 密码都无法使用,才需要按第五章进入 BootWare。
四、用另一个管理员账号修改忘记的密码
这里说的“还能使用其他管理员账号”,是指交换机上原来就有两个管理账号。例如:
netops_hq01的密码忘记了;emergency_admin的密码仍然有效,并且具有管理员权限。
这时可以先用 emergency_admin 登录交换机,再给 netops_hq01 设置新密码。整个过程不需要重启,也不会清空交换机配置。
1. 修改本地管理用户密码
先从运维电脑使用仍然有效的管理员账号登录。下面继续使用专栏前文中的管理地址和非默认 SSH 端口,实际值要按现场替换:
# 使用仍然有效的emergency_admin账号登录交换机。
ssh -p 22222 emergency_admin@192.168.100.2
登录成功后,先确认忘记密码的 netops_hq01 确实存在。不要因为记错用户名而新建一个相似账号:
# 查看目标账号及其状态、登录方式和权限。
<HQ-Access-01> display local-user user-name netops_hq01 class manage
确认用户名正确后,再进入这个账号的视图修改密码。使用交互方式输入,可以避免新密码直接出现在命令行和文章截图中:
<HQ-Access-01> system-view
# 进入系统视图。
[HQ-Access-01] local-user netops_hq01 class manage
# 进入现有管理用户视图,用户名要按实际配置填写。
[HQ-Access-01-luser-manage-netops_hq01] password
# 按提示输入并再次确认新密码,输入内容不会直接显示。
[HQ-Access-01-luser-manage-netops_hq01] quit
# 返回系统视图。
修改现有用户密码时,不要顺手改变它的 service-type 和用户角色。原来只能使用 SSH 的账号,不需要为了改密码增加 Telnet 或其他登录方式。
先不要退出 emergency_admin 的会话。在运维电脑上打开第二个终端窗口,使用刚修改的账号重新登录:
# 用netops_hq01和刚设置的新密码建立第二个SSH会话。
ssh -p 22222 netops_hq01@192.168.100.2
能够进入交换机并正常执行授权范围内的命令,才说明新密码有效。然后回到 emergency_admin 会话保存配置:
# 保存已经验证的新密码。
<HQ-Access-01> save safely force
2. 修改 Console 独立密码
如果忘记的是 Console 独立密码,但 SSH 管理员账号仍然可以登录,也可以先通过 SSH 进入交换机,再修改 Console 密码。
只有 Console 当前使用 authentication-mode password 时,才执行下面的命令:
[HQ-Access-01] line console 0
# 进入Console用户线视图。
[HQ-Access-01-line-console0] set authentication password simple Replace-With-New-Console-Password
# 设置新的Console密码。示例密码必须替换,设备保存时会以密文记录。
[HQ-Access-01-line-console0] return
# 返回用户视图。
先保留 SSH 管理员会话,再打开 Console 测试新密码。确认 Console 能够重新登录后,回到 SSH 会话保存:
# 保存已经验证的新密码。
<HQ-Access-01> save safely force
五、所有登录密码都忘记时恢复
1. 进入 BootWare 菜单
把运维电脑接到 Console 口,重新启动交换机。终端出现进入 BootWare 或 BootROM 菜单的提示时,按 Ctrl+B。
部分设备会要求输入 BootWare 密码。如果这个密码也被修改并且没有记录,不要尝试网上流传的所谓通用密码,应联系 H3C 技术支持,并准备设备型号、序列号和归属证明。
进入菜单后先看是否显示:
Password recovery capability is enabled.
这行表示密码恢复功能已经启用,可以在不删除启动配置的情况下恢复登录。
2. 优先选择跳过 Console 认证
菜单中存在 Skip Authentication for Console Login 时,优先选择这一项。它只在下一次启动时跳过 Console 登录认证,不会删除原来的配置。
不同型号的编号可能不同,常见菜单中显示为:
Skip Authentication for Console Login
选择后按菜单提示启动系统。交换机会加载原配置,但本次 Console 登录不再要求原密码。
进入命令行后,先确认原配置仍然存在:
# 确认当前和下次启动配置文件没有被删除。
<HQ-Access-01> display startup
# 另存一份当前配置,防止后续修改失误。
<HQ-Access-01> save flash:/before-password-recovery.cfg
# 查看本地用户和Console认证方式。
<HQ-Access-01> display local-user
<HQ-Access-01> display current-configuration
然后根据第三章的判断,修改本地用户密码或 Console 独立密码。新密码测试成功后执行:
# 把新密码保存到启动配置。
<HQ-Access-01> save safely force
# 确认下次启动配置文件正确。
<HQ-Access-01> display startup
最后正常重启一次,并使用新密码重新登录。BootWare 的跳过认证只对一次启动有效,重启后仍能登录,才能说明密码恢复完成。
3. 菜单只有“跳过当前配置”
部分设备没有单独跳过 Console 认证,只提供:
Skip Current System Configuration
这个选项只让设备本次启动不加载原配置,通常不会删除原启动配置文件。此时设备看起来像空配置,但原文件可能仍在 Flash 中。
进入系统后先执行 display startup 和 dir,确认原配置文件还在。不要执行 save,否则空配置可能覆盖原启动配置。
恢复原配置需要使用配置回滚命令,这一步会让管理地址、端口和登录配置立即恢复,可能中断当前连接,只能通过 Console 操作:
<H3C> display startup
# 记下原主启动配置文件名,下面以flash:/startup.cfg为例。
<H3C> system-view
# 进入系统视图。
[H3C] configuration replace file flash:/startup.cfg
# 用原启动文件恢复正在运行的配置,文件名必须按display startup的结果填写。
[H3C] local-user netops_hq01 class manage
# 在当前Console会话仍然有效时,进入需要恢复的本地用户。
[H3C-luser-manage-netops_hq01] password
# 按提示输入并确认新密码。
[H3C-luser-manage-netops_hq01] return
# 返回用户视图。
<H3C> save safely force
# 测试新密码后保存配置。
如果忘记的是 Console 独立密码,就在配置回滚完成后使用第四章的 line console 0 命令修改。
4. 密码恢复功能已经关闭
如果菜单显示密码恢复功能已关闭,跳过认证和跳过当前配置通常不可用。此时为了重新获得管理权限,可能只能选择 Restore to Factory Default Configuration。
这个操作会删除下次启动配置并使设备按出厂配置启动,不能保留现有业务配置。没有配置备份时,应先联系 H3C 技术支持确认设备是否还有其他可用处理方法。
六、恢复出厂设置
恢复出厂设置适合设备改作他用、退库或原配置确认不再需要的情况。不能把它当作普通的密码修改方法。
1. 能正常登录时
先把配置备份到交换机和内网服务器,再确认下次启动文件:
# 另存一份清空前配置,文件还要上传到内网备份服务器。
<HQ-Access-01> save flash:/before-factory-reset.cfg
# 查看主用和备用下次启动配置文件。
<HQ-Access-01> display startup
确认备份可用后,删除主用和备用下次启动配置:
# 删除备用下次启动配置。设备没有备用文件时可能提示文件不存在。
<HQ-Access-01> reset saved-configuration backup
# 删除主用下次启动配置。
<HQ-Access-01> reset saved-configuration main
# 确认Next main和Next backup已经为空。
<HQ-Access-01> display startup
# 重启设备。
<HQ-Access-01> reboot
重启过程中如果询问是否保存当前配置,必须选择 N;如果选择 Y,刚才准备清空的配置会被重新保存。确认是否继续重启时选择 Y。
部分 Comware V7 设备支持 restore factory-default,它会清除配置和运行数据,完成后还需要按设备提示重启。由于各型号支持情况不同,本文使用步骤更容易逐项核对的 reset saved-configuration 方法。
2. 已经无法登录时
通过 Console 进入 BootWare 菜单,选择:
Restore to Factory Default Configuration
确认提示中明确写着删除配置并恢复出厂状态后,再输入 Y。完成后按菜单提示启动或重启设备。
菜单编号会变化,不能因为其他型号的教程写着“选择 5”就直接输入 5。
七、恢复后的检查
设备启动后先通过 Console 检查:
# 查看是否已经不再加载原来的启动配置。
<H3C> display startup
# 查看当前配置,确认原管理地址、VLAN、账号和端口配置已经不存在。
<H3C> display current-configuration
# 查看Flash中还保留哪些文件。
<H3C> dir
恢复出厂配置不一定会删除 Flash 中所有普通文件、软件包和许可证。设备需要退库或交给其他单位时,还要按公司要求处理备份文件、日志、证书和其他敏感文件,不能只看到空配置就认为数据已经全部清除。
如果设备准备重新上线,应重新配置管理地址、SSH、本地用户、ACL、NTP、Syslog 和配置备份,并完成业务验证。
八、Comware V5 版本差异
Comware V5 同样可以使用下面的命令删除下次启动配置:
# 查看当前和下次启动配置文件。
<H3C> display startup
# 删除备用和主用下次启动配置。
<H3C> reset saved-configuration backup
<H3C> reset saved-configuration main
# 重启时不要保存当前配置。
<H3C> reboot
部分较早设备没有主、备用参数,只支持 reset saved-configuration。应以该型号的正式命令手册为准,不能反复尝试删除命令。
V5 的启动菜单可能显示为 BootROM、BootWare 或 Extended BootROM。恢复密码时仍然优先选择跳过 Console 认证或跳过当前配置,不要选择清除 Flash、格式化文件系统或恢复出厂配置。
九、小结
忘记密码时,我的处理顺序是:先看有没有其他管理员账号,再通过 Console 进入 BootWare,优先选择一次性跳过 Console 认证,登录后修改密码并验证。这个过程的目标是保留原配置。
恢复出厂设置则会删除启动配置,只适合设备改作他用、退库或确认原配置不再需要的情况。执行前必须留好备份,重启时不能再次保存当前配置。
完整配置汇总
下面只汇总进入命令行后的操作。BootWare 菜单必须按现场显示的文字选择,不能把示例编号当作固定编号。
忘记本地用户密码
# 通过其他管理员账号或一次性跳过Console认证进入设备后执行。
<HQ-Access-01> display startup
<HQ-Access-01> save flash:/before-password-recovery.cfg
<HQ-Access-01> display local-user
<HQ-Access-01> system-view
[HQ-Access-01] local-user netops_hq01 class manage
[HQ-Access-01-luser-manage-netops_hq01] password
# 按提示输入并确认新密码。
[HQ-Access-01-luser-manage-netops_hq01] return
# 使用第二个会话验证新密码后再保存。
<HQ-Access-01> save safely force
<HQ-Access-01> display startup
忘记 Console 独立密码
# 仅适用于Console使用authentication-mode password的情况。
<HQ-Access-01> system-view
[HQ-Access-01] line console 0
[HQ-Access-01-line-console0] set authentication password simple Replace-With-New-Console-Password
[HQ-Access-01-line-console0] return
# 使用新密码验证后保存。
<HQ-Access-01> save safely force
恢复出厂设置
# 先保存并上传清空前配置。
<HQ-Access-01> save flash:/before-factory-reset.cfg
<HQ-Access-01> display startup
# 删除备用和主用下次启动配置。
<HQ-Access-01> reset saved-configuration backup
<HQ-Access-01> reset saved-configuration main
<HQ-Access-01> display startup
# 重启时遇到保存当前配置的提示选择N,确认重启选择Y。
<HQ-Access-01> reboot