Cisco Nexus重置密码
一、背景与适用场景
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]
重启后再次登录,确认新密码是持久的,而不是只存在于内存里。
四、验证方法
n9k# show user-account:能看到admin,角色为network-admin;n9k# show running-config | include ^username:能看到 admin 一行(NX-OS 用username admin password 5 <hash> role network-admin的形式存储);n9k# copy running-config startup-config之后,n9k# show startup-config | include ^username应能看到同一行,说明已落盘;- 用新密码从 Console 重新登录一次,再用 SSH 登录一次(确认没有额外的 AAA 限制);
n9k# show boot:确认下次启动用的镜像/配置文件没有被 loader 阶段的临时指定改坏(loader 里的cmdline recoverymode=1只在本次启动有效,正常load-nxos后不需要额外清理,但值得核对一次);n9k# show vpc、n9k# show interface status:确认业务侧状态恢复正常。
五、常见坑与注意事项
- 用错中断键:N9K 是
Ctrl+C,不是 Break。按 Break 不会有任何 loader 提示。 - 漏掉
cmdline recoverymode=1:最常见的失败原因。没有它,无论怎么 boot 都会走到正常登录界面,"恢复"无从下手。 - 镜像名写错:一定要先用
dir bootflash:看清楚,注意bootflash:前缀和斜杠写法,版本不同容错不同。 - loader 里 boot 失败:不要反复硬断电,回到
loader>用dir重新确认文件名再boot;确认镜像本身没有损坏(换另一个镜像试)。 - 密码强度检查:NX-OS 默认要求密码满足复杂度(长度至少 8 位、包含多种字符类别、通常不允许包含用户名)。
admin-password被拒绝时,换一个更复杂的密码,而不是反复重试同一个。 - 提示符写错:
switch(boot)(conft)#是错的,正确的是switch(boot)(config)#。 - 忘记
copy running-config startup-config:boot 模式里改的密码如果没落盘,下次重启可能又回到旧密码(具体取决于版本行为),登录后立刻保存是最稳的做法。 - AAA / 远程认证覆盖:如果设备配了
aaa authentication login default group tacacs+ local之类的策略,本地 admin 账号仍是 Console 兜底手段;但若 default 里只有远端组且本地被禁用,登录依旧会失败,需要检查show running-config | include aaa与show aaa。 - 恢复不丢配置,但也不要点清配置的命令:恢复流程本身不碰 startup-config。登录后别顺手敲
write erase/no username admin之类的清理动作,除非你确实要交付一台干净设备——那时顺序是write erase→reload,并提前备份copy running-config tftp:。 - vPC / 双上联环境:重启一台会波及流量,先
show vpc确认对端健康,操作期间关注对端日志。 - N9K 的 loader 提示不支持
cmdline:极少数固件版本会报无效命令。这通常与镜像签名/安全启动策略相关,此时应走 Cisco TAC 的官方流程,不要尝试非常规手段。 - 密码恢复属于敏感操作:企业环境中应同步登记变更、通知安全团队,并在恢复后按规范轮换所有本地账号口令。
一句话总结:Console 接好 → 断电重启 → Ctrl+C 进 loader → cmdline recoverymode=1 → dir 找镜像 → boot bootflash:镜像 → switch(boot)# configure terminal → admin-password → load-nxos → 登录后 copy running-config startup-config 并重启复验。
转载自https://gitgit.ee/cisco-nexus-9000-password-reset.html



