Cisco Nexus 9000重置密码方法

Cisco Nexus 9000重置密码

一、背景与适用场景

Cisco Nexus 9000(N9K)跑的是 NX-OS,没有 IOS 那套 confreg / 配置寄存器机制。忘记 admin 密码时的官方恢复思路是:在启动阶段中断引导进入 loader,加载带 recoverymode 的内核进 switch(boot)# 模式,直接重置 admin 密码,再用 load-nxos 回到正常 NX-OS。

整个过程的优点很明确:不动 startup-config,业务配置原样保留。适合以下场景:

  • 忘记 admin 密码,但又不能接受清空配置(清配置意味着所有 vlan / vpc / 端口配置重做);
  • 二手或回收的 N9K,需要拿到管理权限后接管配置;
  • 交接文档丢失、密码只有离职同事知道的历史设备。

典型命令序列如下(后文逐条拆开讲):

loader> cmdline recoverymode=1
loader> dir bootflash:
loader> boot bootflash:nxos.9.3.5.bin
...
switch(boot)# configure terminal
switch(boot)(config)# admin-password Cisco@123
switch(boot)(config)# exit
switch(boot)# load-nxos

二、准备条件

  • Console 连接(必须):N9K 的这条恢复流程只能走控制台,SSH/Telnet 用不上。N9K 控制台常见默认速率是 115200 bps(部分版本/固件为 9600),数据位 8、无校验、1 停止位、无流控。乱码就先切波特率,再检查别的问题。
  • 能发送 Ctrl+C 的终端:PuTTY、SecureCRT、iTerm2 + screen /dev/tty.usbserial-XXXX 115200 都可以。
  • 记录镜像文件名:如果还能登录,先记下 show version 里的 System image file 和 show boot 的输出,loader 阶段要用到确切文件名;不能登录也没关系,loader 里用 dir 自己看。
  • 维护窗口:恢复过程要重启,承载业务的设备会中断流量;vPC 环境中确认对端健康(show vpc)后再动手。
  • 密码方案提前想好:NX-OS 有密码强度检查,长度不足或字符类别太单一会被拒绝。

三、详细步骤

步骤 1:接好 Console,确认能输入

串口参数设置正确后,反复回车应能看到 N9K 的登录提示;此时别急着登录,直接进入下一步重启。

步骤 2:断电重启

用电源开关、PDU、或拔插电源线给设备断电,重新上电。整个过程保持串口会话打开,准备随时按 Ctrl+C。

步骤 3:在启动阶段连续按 Ctrl+C,进入 loader

N9K 在开始自检后很快就会跳到内核引导,留给中断的窗口通常只有 1~3 秒。看到启动输出就连续敲 Ctrl+C,直到出现:

loader>

没进去就再断电重启一次。注意:N9K 不是用 Break 中断的,别拿 IOS 的习惯套上来。

步骤 4:启用恢复模式

loader> cmdline recoverymode=1

这条命令给内核加上恢复标记。它决定了设备启动后是进普通的登录界面,还是进不带鉴权的 switch(boot)#。漏掉这一步,后面 boot 完只会看到正常的 NX-OS 登录提示,恢复直接失败。

步骤 5:查看 flash 中的镜像文件

loader> dir bootflash:

部分版本也可以直接 loader> dir。输出里会列出 bootflash 下的镜像(例如 nxos.9.3.5.bin、n9000-dk9.9.3.5.bin)以及 packages.conf 一类的启动配置文件。把文件名原样记下来,写错会报 "cannot load" 或 file not found。

步骤 6:用指定镜像启动

loader> boot bootflash:nxos.9.3.5.bin

有些版本要求路径带斜杠,即 boot bootflash:/nxos.9.3.5.bin;以 dir 的输出为准。如果这台交换机平时是通过 packages.conf 启动的,也可以 boot bootflash:packages.conf。

步骤 7:进入 switch(boot)# 模式

镜像加载完成后,系统会停在 boot 模式的提示符,通常长这样:

switch(boot)#

这个模式下没有配置校验,也没有正常启动的配置加载;它是恢复密码的唯一入口。

步骤 8:重置 admin 密码

switch(boot)# configure terminal
switch(boot)(config)# admin-password Cisco@123
switch(boot)(config)# exit
switch(boot)# load-nxos
  • boot 模式下的配置提示符是 switch(boot)(config)#。网上流传的 switch(boot)(conft)# 是笔误,照着敲会报无效命令;
  • 命令缩写在这里不一定被接受,configure terminal 建议写全,别用 conf t;
  • admin-password 后面跟明文新密码,执行后 NX-OS 会把它以 hash 形式写进用户配置;
  • 部分平台/版本支持直接在 switch(boot)# 下执行 admin-password <new-password>。如果 configure terminal 报错,可以试这个变体。

步骤 9:回到正常 NX-OS 并登录

switch(boot)# load-nxos

系统按 startup-config 正常启动(业务配置保留),启动完成后用 admin + 刚设置的新密码登录。登录后立刻保存一次:

n9k# show user-account
n9k# show running-config | include ^username admin
n9k# copy running-config startup-config

步骤 10:重启复验

n9k# reload
Proceed with reload? [confirm]

重启后再次登录,确认新密码是持久的,而不是只存在于内存里。

四、验证方法

  1. n9k# show user-account:能看到 admin,角色为 network-admin;
  2. n9k# show running-config | include ^username:能看到 admin 一行(NX-OS 用 username admin password 5 <hash> role network-admin 的形式存储);
  3. n9k# copy running-config startup-config 之后,n9k# show startup-config | include ^username 应能看到同一行,说明已落盘;
  4. 用新密码从 Console 重新登录一次,再用 SSH 登录一次(确认没有额外的 AAA 限制);
  5. n9k# show boot:确认下次启动用的镜像/配置文件没有被 loader 阶段的临时指定改坏(loader 里的 cmdline recoverymode=1 只在本次启动有效,正常 load-nxos 后不需要额外清理,但值得核对一次);
  6. n9k# show vpc、n9k# show interface status:确认业务侧状态恢复正常。

五、常见坑与注意事项

  1. 用错中断键:N9K 是 Ctrl+C,不是 Break。按 Break 不会有任何 loader 提示。
  2. 漏掉 cmdline recoverymode=1:最常见的失败原因。没有它,无论怎么 boot 都会走到正常登录界面,"恢复"无从下手。
  3. 镜像名写错:一定要先用 dir bootflash: 看清楚,注意 bootflash: 前缀和斜杠写法,版本不同容错不同。
  4. loader 里 boot 失败:不要反复硬断电,回到 loader> 用 dir 重新确认文件名再 boot;确认镜像本身没有损坏(换另一个镜像试)。
  5. 密码强度检查:NX-OS 默认要求密码满足复杂度(长度至少 8 位、包含多种字符类别、通常不允许包含用户名)。admin-password 被拒绝时,换一个更复杂的密码,而不是反复重试同一个。
  6. 提示符写错:switch(boot)(conft)# 是错的,正确的是 switch(boot)(config)#。
  7. 忘记 copy running-config startup-config:boot 模式里改的密码如果没落盘,下次重启可能又回到旧密码(具体取决于版本行为),登录后立刻保存是最稳的做法。
  8. AAA / 远程认证覆盖:如果设备配了 aaa authentication login default group tacacs+ local 之类的策略,本地 admin 账号仍是 Console 兜底手段;但若 default 里只有远端组且本地被禁用,登录依旧会失败,需要检查 show running-config | include aaa 与 show aaa。
  9. 恢复不丢配置,但也不要点清配置的命令:恢复流程本身不碰 startup-config。登录后别顺手敲 write erase / no username admin 之类的清理动作,除非你确实要交付一台干净设备——那时顺序是 write erase → reload,并提前备份 copy running-config tftp:。
  10. vPC / 双上联环境:重启一台会波及流量,先 show vpc 确认对端健康,操作期间关注对端日志。
  11. N9K 的 loader 提示不支持 cmdline:极少数固件版本会报无效命令。这通常与镜像签名/安全启动策略相关,此时应走 Cisco TAC 的官方流程,不要尝试非常规手段。
  12. 密码恢复属于敏感操作:企业环境中应同步登记变更、通知安全团队,并在恢复后按规范轮换所有本地账号口令。

一句话总结:Console 接好 → 断电重启 → Ctrl+C 进 loader → cmdline recoverymode=1 → dir 找镜像 → boot bootflash:镜像 → switch(boot)# configure terminal → admin-password → load-nxos → 登录后 copy running-config startup-config 并重启复验。