
简介这是一份面向网络运维与安全技术人员的F5 BIG-IP密码恢复操作文档聚焦设备管理员密码遗忘后的应急处理场景适用系统版本为Ver9.0、10.0、11.0。文档围绕控制台接入、脚本环境调用、账户口令修改与配置持久化等环节整理并附有F5官方解决方案链接便于读者核对版本差异与操作边界。资源包共1个docx文件大小约92KB篇幅紧凑适合作为现场排障时的速查材料。已有537人学习说明该主题在设备维护群体中具有一定关注度读者可从中获得按版本归类的处理思路、命令参考与风险提示用于理解F5密码重置流程和后续安全加固方向。1. 从一台忘记口令的 ADC 说起控制台恢复能救到什么程度一台应用交付控制器ADC放在机柜里业务还在跑管理员口令却没人说得清。远程 SSH 进不去带外管理地址也因口令失效卡住现场只剩控制台口能碰。这种场景下应用交付控制器控制台密码恢复就不是“炫技”而是恢复运维入口的最后一根绳。串口参数通常从 19200 波特率、8 数据位、1 停止位、无校验、无流控开始试输入笔记里记录的 9.x、10.x、11.x 三个版本段也都围绕这个链路展开。这份 docx 笔记的价值在于把“物理连接—维护 shell—改 root/admin 口令—保存配置—重启验证”串成了一条可照抄的命令链适合驻场运维、交付工程师和实验室里管闲置设备的人。它解决的是“有控制台、有授权、设备还能启动”前提下的口令恢复如果没有控制台、没有设备管理授权或者启动镜像已经损坏这套流程救不了别把希望押在几条命令上。2. 控制台链路与串口参数19200 波特率下的连接闭环控制台恢复的第一步不是敲命令而是让终端稳定地“看见”设备。输入笔记里写“时钟频率 19200Tmsh”实际落地时要把它理解成串口波特率 19200后面的Tmsh是命令环境不是频率单位。很多翻车不是命令错而是串口参数配成 9600、流控打开、线序不对终端一片空白操作者以为设备死了实际上只是链路没闭环。串口参数先固定成下表这一组再谈登录失败。参数常见值落地说明波特率19200输入笔记明确值先按它试数据位8多数控制台默认 8 位停止位18N1 组合校验位None无奇偶校验流控None关闭 RTS/CTS、XON/XOFF端口COMx 或 /dev/ttyUSB0以系统识别为准Windows 下先在设备管理器里确认 USB 转串口对应的 COM 号再打开终端工具Linux 下用dmesg看插入后新增的 tty 设备。下面的命令块只做两件事确认端口、按 19200 8N1 连接。minicom和screen选一个就行不要同时占用同一个串口。# Linux 下确认串口设备是否被识别 dmesg | grep -i ttyUSB # 方式一minicom 连接19200 8N1无流控 sudo minicom -D /dev/ttyUSB0 -b 19200 # 方式二screen 连接参数顺序为 设备 波特率 sudo screen /dev/ttyUSB0 19200dmesg的作用是确认内核给转接线分配了哪个设备节点常见结果是/dev/ttyUSB0或/dev/ttyACM0不能凭感觉写。-D指定串口设备-b 19200指定波特率screen的第二个参数就是波特率。进入后如果按回车没有回显先别急着反复重启设备先检查线序、流控和终端软件里的换行设置。退出minicom常用Ctrl-A再按X退出screen常用Ctrl-A再按K这些退出动作要记牢否则串口会被占用下一次连接直接报“设备忙”。2.1 终端软件与串口参数怎么配用 SecureCRT、PuTTY 或系统自带工具都可以核心参数只有一组19200、8、1、None、无流控。SecureCRT 里新建串口会话时端口选 COMx波特率填 19200数据位 8停止位 1校验 None流控全部取消PuTTY 选 Serial速度填 19200连接类型选 Serial进会话前把 Flow control 设为 None。终端仿真类型一般选 VT100 或默认不要开一堆本地回显和行编辑功能否则设备回显和本地输入会叠在一起看起来像乱码。连接建立后按一次回车正常应看到登录提示或维护提示。若看到提示但输入口令后认证失败说明串口链路已经通了问题在认证层若完全无回显先查物理层。这里我一般会做一个小动作拔掉串口线再插回观察终端是否出现一行内核或设备日志有日志说明线和工作站都活着没有日志就换线、换 USB 口、换终端工具。这个动作比盲目改波特率快血泪经验是很多人把 19200 改成 115200 试了一圈最后发现是转接线只支持半双工。提示改密前先确认设备处于维护窗口冗余环境先在不承载生产流量的节点上演练串口参数、命令上下文和保存路径写在纸上避免中途换人后接不上。2.2 连接失败时先查物理层还是认证层判断顺序可以按“有没有回显、能不能到登录提示、认证是否失败”三层走。第一层完全无回显查线序、COM 号、波特率、流控、终端软件是否占用了端口。第二层有回显但提示乱码多数是波特率或校验位不一致少数是终端仿真和换行符设置问题。第三层能到登录提示但口令不过这时才进入维护 shell 和改密命令的范畴。输入笔记里记录“登录失败后不要关闭连接”这个提醒有用因为控制台会话断开后维护入口未必还能原样回来保持会话稳定比反复重连更稳。物理层排查不要一上来就拆机。先换一根已知能用的 USB 转串口线再换工作站 USB 口再看设备控制台线是不是直通线、是否接对 Console 口而不是 AUX 口。很多设备前面板有多个 RJ45 口插错口会出现“能连上但没有任何字符”的假象。认证层排查则要看提示语提示login incorrect和提示not found是两回事前者是账号口令问题后者是命令路径或 shell 环境问题别把两者混成一类。3. 从登录失败到 shell 入口tshark 与 tclsh 的过渡逻辑输入笔记把tshark和tclsh写在改密步骤前面这里需要拆开看。tshark是抓包命令行工具常见用途是留存通信证据或排查带外链路它不是改密的必经入口tclsh才是 Tcl 解释器进入后才有机会调用tmsh这类管理命令。实际排障时我会先确认维护 shell 里到底有哪些命令可用再决定走tclsh还是直接回普通 shell。下面这组命令只做“看路径”不改任何配置适合在动手前跑一遍。# 在维护 shell 中确认关键命令是否存在 which tshark which tclsh which tmsh # 查看当前身份确认是否具备改密权限 idwhich只返回命令路径不会执行命令返回空值说明当前环境的 PATH 里没有这个命令不能硬敲。id用来看当前用户和用户组改 root 口令和 admin 口令需要足够权限权限不够时命令会报错而不是静默成功。tshark不存在不影响改密直接找tclsh和tmshtclsh不存在则说明当前 shell 不是笔记里描述的环境需要回到设备启动菜单或维护模式确认。这个判断能避免把“命令不存在”误判成“口令改不了”。3.1 为什么先看包再进解释器tshark放在前面有它的道理在受控维护场景里抓一段控制台或管理口流量能留下“谁在什么时间、从哪个口进来、执行了哪些交互”的旁证。尤其是多人协作的机房改密前后各抓一小段后续审计对得上时间线。但抓包不是改密的前置条件包里也抓不到明文口令别指望靠抓包“看出密码”。我一般把tshark当可选动作设备里有这个命令就抓 30 秒留存没有就跳过不因为它报not found就停住。抓包命令要限制时长和文件大小避免把维护 shell 的存储写满。下面只是示意实际接口名以设备ip a或ifconfig输出为准不要照抄接口名。# 可选抓 30 秒控制台或管理口流量限制包数避免写满存储 tshark -i eth0 -a duration:30 -c 200 -w /var/tmp/console_capture.pcap # 抓完后确认文件大小再决定是否保留 ls -lh /var/tmp/console_capture.pcap-i指定接口-a duration:30表示抓 30 秒后自动停止-c 200限制包数-w写文件。这里的关键是“限制”不是抓得越多越好。控制台维护环境存储通常不宽裕抓包文件写满分区会让后续保存配置失败这是典型的黑匣子问题。抓包文件只作旁证不参与改密命令链如果设备里根本没有tshark直接进入下一节的tclsh检查。3.2 tclsh 入口的触发条件与命令边界tclsh是 Tcl 交互解释器。进入后提示符可能变成%或这时直接敲tmsh modify auth password root有可能被 Tcl 当成命令名解析报invalid command name tmsh。原因是 Tcl 不认识tmsh这个外部命令需要加exec让解释器去调外部程序或者先exit回普通 shell 再敲tmsh。输入笔记里在 TCL 提示符下直接写tmsh这一步在不同版本上表现不一致落地时要按回显调整不能死抄。# 进入 Tcl 解释器 tclsh # 在 Tcl 提示符下调用外部 tmsh需要 exec exec tmsh modify auth password root # 如果不想在 Tcl 里绕退出回普通 shell exit # 回到普通 shell 后再执行 tmsh 命令 tmsh modify auth password rootexec的作用是让 Tcl 启动子进程执行外部命令并把回显带回当前终端不写exec时Tcl 只会在自己的命令表里找tmsh找不到就报错。exit退出 Tcl 解释器回到进入前的 shell。这里的边界要分清tclsh不是绕过认证的魔法它只是维护 shell 可达后的脚本环境如果连维护 shell 都进不去敲tclsh没有意义。另一个常见误区是把tshark当入口实际上它只是抓包工具进不去 shell 时抓包也解决不了权限问题。注意命令提示符是%、、#还是(tmos)决定了你当前在 Tcl、普通 shell 还是 tmsh 视图里。每换一个提示符先敲pwd或id确认环境再敲改密命令。4. 改 root 与 admin 口令两条命令链的参数与回显改密命令链分两段root 本地超级用户和 admin 管理用户。输入笔记给出的核心命令是tmsh modify auth password root、tmsh modify auth user admin prompt-for-password或tmsh modify auth password admin然后save /sys config或save sys config最后quit和reboot。这些命令看着短实际落地要区分“在普通 shell 里敲”还是“已经进了 tmsh 视图”。在普通 shell 里要带tmsh前缀在 tmsh 交互视图里不带前缀只写modify auth ...。上下文错了回显就是not found或invalid command。对象命令示例作用常见回显roottmsh modify auth password root修改本地超级用户口令提示输入新口令并确认admintmsh modify auth user admin prompt-for-password交互式修改管理用户口令提示输入新口令admintmsh modify auth password admin按 auth password 对象改管理口令提示输入新口令配置tmsh save /sys config保存运行配置保存成功或路径提示配置tmsh save sys config另一种保存写法以当前版本回显为准先改 root 再改 admin 是我习惯的顺序。root 是本地兜底账号admin 是日常管理账号先把兜底入口握在手里再去改日常入口万一 admin 命令回显异常还能用 root 回到维护 shell 重试。下面的代码块按“普通 shell”上下文写每条命令后面用注释说明它做什么如果你已经在tmsh提示符里把前面的tmsh去掉即可。# 确认当前在普通 shell且 tmsh 可用 which tmsh id # 修改 root 口令按提示输入两次新口令 tmsh modify auth password root # 修改 admin 口令交互式提示方式 tmsh modify auth user admin prompt-for-password # 另一种写法直接按 auth password 对象改 admin tmsh modify auth password admin # 保存配置到启动配置 tmsh save /sys config # 如果上面的路径不识别再试另一种写法 tmsh save sys config # 退出当前维护环境 quit # 重启设备让口令链路完整生效 rebootmodify表示修改已有对象不是新增auth password是认证口令对象root和admin是对象名。prompt-for-password是交互式参数执行后终端会提示输入新口令通常要输入两次两次不一致会重新提示。save /sys config里的/sys config是配置路径写法部分版本认save sys config两条都失败时先看当前提示符和版本不要连续重试十几次。reboot会中断业务必须在维护窗口执行执行前确认配置已保存否则重启后口令可能回退到旧状态。4.1 root 口令修改tmsh modify auth password rootroot 口令修改的关键在“回显确认”。执行tmsh modify auth password root后正常会看到类似Changing password for root、New password:、Retype new password:的提示如果没有任何提示直接回到 shell可能是命令没进对上下文或者当前权限不足。输入新口令时终端通常不回显字符这是正常现象不要以为键盘没反应。两次输入完成后命令会返回成功或静默返回静默返回也要继续做一次id或重新登录验证不能凭“没报错”就认定成功。# 修改 root 口令并观察回显 tmsh modify auth password root # 如果命令直接返回且没有提示先确认是否在 tmsh 视图 # 在 tmsh 视图里应使用 modify auth password root # 改完后退出当前会话重新登录验证 root exit这段代码块的重点是上下文切换普通 shell 带tmshtmsh 视图不带。exit后重新登录是为了验证新口令不是多此一举有些环境里口令修改成功但会话缓存仍旧必须新会话才生效。验证时只做只读命令例如看版本、看当前用户不要顺手改配置。root 口令不要设成与 admin 相同也不要用设备型号、机房编号这类可猜字符串恢复入口的口令一旦泄露比业务口令泄露更麻烦。4.2 admin 口令修改prompt-for-password 与直接改密admin 口令有两条写法tmsh modify auth user admin prompt-for-password走用户对象的交互提示tmsh modify auth password admin走认证口令对象。两条命令在不同版本上的回显不完全一样前者更像“改用户密码”后者更像“改认证密码对象”。我一般先用prompt-for-password因为它提示明确不容易把对象名敲错如果版本不认这个参数再用auth password admin。两条不要同时连续执行先看第一条的回显确认失败再换第二条。# 方式一按用户对象交互改密 tmsh modify auth user admin prompt-for-password # 方式二按认证口令对象改密 tmsh modify auth password admin # 改完后查看 admin 用户状态只读不改配置 tmsh show auth user adminauth user admin指定用户对象prompt-for-password让系统交互式收集新口令auth password admin直接操作口令对象。show auth user admin是只读查看用来确认用户存在、状态正常不显示明文口令。若show命令报找不到对象说明当前版本的对象路径不同先tmsh list auth看可用子命令不要盲猜。改 admin 口令时如果设备接了外部认证先确认本地 admin 不是被外部认证覆盖否则改完本地口令登录仍走外部源看起来像“没生效”。4.3 保存配置与重启save /sys config 与 reboot保存是整条链里最容易被轻视的一步。输入笔记里给了save /sys config和save sys config两种写法实际落地要按当前提示符选普通 shell 用tmsh save /sys configtmsh 视图里用save /sys config。保存成功后不要立刻重启先再查一次配置时间或保存回显确认写到了启动配置。重启命令reboot会断开当前会话执行前把维护窗口、业务切换、回滚方式都确认好冗余环境不要两台一起重启先一台验证口令再处理另一台。# 普通 shell 下保存配置 tmsh save /sys config # tmsh 视图下保存配置 save /sys config # 确认保存结果不同版本回显不同看到成功或路径即可 tmsh show sys config # 重启前再次确认当前身份和保存状态 id tmsh show sys version # 执行重启 rebootsave /sys config的/sys config是配置对象路径save sys config是另一种写法show sys config只读查看配置状态。reboot没有额外参数时就是立即重启部分环境支持延迟重启但输入笔记没有给延迟参数落地时不要自己加不认识的选项。重启后串口会重新初始化终端可能短暂无回显等设备起来再按回车如果重启后旧口令还能登录先查是不是保存没落到启动配置而不是继续重复改密。提示改密和保存之间不要插无关操作。命令链越长上下文越容易丢我一般把modify、save、reboot三段写成三行清单执行一段勾一段。5. 避坑与排查五类翻车现场和对应处置控制台改密看起来只有几条命令翻车点却集中在“链路、上下文、保存、冗余、版本”五个地方。下面五条都按“现象—原因—解决”写每条都能在现场直接对照。不要一遇到失败就重复敲同一条命令先看提示符和回显再决定下一步很多所谓“命令无效”其实是环境不对。5.1 串口有回显但全是乱码现象终端能显示字符但全是方块、问号或乱码按回车偶尔有反应。原因波特率、校验位或终端仿真不一致最常见是把 19200 配成 9600 或 115200也有转接线质量差导致高波特率下误码。解决先把串口参数锁死为 19200、8、1、None、无流控终端仿真选 VT100再换一根已知可用的转接线换 USB 口。不要一边改波特率一边改流控变量太多会掩盖真实原因。若乱码只在输入时出现检查本地回显和行编辑是否打开关掉本地回显再试。# 重新按 19200 8N1 连接先排除参数问题 sudo minicom -D /dev/ttyUSB0 -b 19200 # 如果仍乱码查看串口是否被其他进程占用 sudo lsof /dev/ttyUSB0lsof用来确认串口没有被另一个终端工具占用被占用时新会话可能收到残缺字符。解决顺序是“先参数、再线缆、再端口占用”不要一上来就怀疑设备主板。乱码阶段不要执行任何改密命令因为你看不清回显容易把确认提示当成失败提示连续输入导致口令被改乱。5.2 命令敲完提示 not found 或 invalid command现象敲tmsh modify auth password root后提示not found或者提示invalid command name tmsh。原因前者是当前 shell 的 PATH 里没有tmsh或者根本没进维护 shell后者是进了 Tcl 解释器Tcl 把tmsh当自己的命令解析。解决先which tmsh确认路径再id确认身份在 Tcl 里用exec tmsh ...或者exit回普通 shell 再敲。不要在报错后连续重复同一条命令先把提示符看清楚。# 确认命令路径和当前身份 which tmsh id # 如果当前在 Tcl 提示符下用 exec 调外部命令 exec tmsh modify auth password root # 或者退出 Tcl 回普通 shell exitwhich返回空值时不要自己拼一个路径硬执行先看设备启动到哪个阶段维护 shell 是否完整加载。invalid command name不是权限错误而是解释器上下文错误把tclsh当成普通 shell 用是这条链里最常见的误用。解决后重新从which tmsh开始走不要跳步。5.3 保存成功但重启后口令回退现象改密时提示成功save也看到成功回显重启后旧口令仍能登录。原因保存写到了运行配置但没有落到启动配置或者保存命令在当前上下文里实际没执行也有冗余环境配置同步把旧配置推回来的情况。解决保存后立刻用只读命令确认配置状态重启前再查一次冗余环境先确认同步方向避免刚改完就被对端覆盖。若已经回退重新走一遍改密链但这次把保存和重启分开验证不要一口气执行完。# 保存后确认配置状态 tmsh save /sys config tmsh show sys config # 查看当前版本和启动配置时间确认保存对象 tmsh show sys version # 确认没有配置同步任务正在覆盖本地配置 tmsh show sys config | head -40show sys config的回显因版本而异重点看保存路径和状态不要只看最后一行。配置同步任务如果在后台运行刚保存的配置可能被对端覆盖处理顺序是先暂停同步或确认同步方向再改密保存。回退不是“命令没生效”这么简单黑匣子往往在同步和保存路径上。5.4 冗余设备只改了一台现象一台设备新口令能登录另一台仍旧口令切换后管理入口又断。原因只改了单节点冗余对端没有同步或者同步机制把旧口令带回来。解决先确认两台设备的关系和同步状态再在维护窗口内逐台处理每台都走“连接—改 root—改 admin—保存—重启—验证”的完整链不要只改一台就认为整组恢复。切换前用只读命令确认两台版本和配置状态一致避免版本差异导致命令路径不同。# 在每台设备上分别确认版本和用户状态 tmsh show sys version tmsh show auth user admin # 单台改密保存后先验证本机新口令 # 再处理对端不要两台同时 reboot冗余环境的坑不在命令本身而在“以为同步会替你做”。口令属于认证配置是否同步、同步方向、冲突策略都要看当前部署不确定时按单机处理逐台验证。两台同时重启会让业务和管理入口一起断现场压力最大别冒这个险。5.5 版本差异导致命令路径变化现象同样的命令在 9.x 能跑在 10.x 或 11.x 提示对象不存在、参数不识别。原因不同版本的对象路径和命令参数有差异prompt-for-password、save /sys config的可用性不完全一致。解决先tmsh list auth看当前版本支持的对象再用tmsh help modify auth password看参数保存命令两条写法都试但每次只试一条看回显再换。不要拿一个版本的命令清单硬套所有设备版本号要先确认。# 查看当前版本 tmsh show sys version # 查看 auth 下可用对象按回显选择命令 tmsh list auth # 查看 modify auth password 的帮助 tmsh help modify auth passwordlist auth是只读列举help是看参数说明不会改配置。版本差异的处理原则是“先看再敲”不是“多敲几次总有一次中”。如果当前版本没有prompt-for-password直接用auth password admin如果save /sys config不识别换save sys config。命令路径变化不是故障是版本边界按回显调整即可。6. 验证与收尾把口令恢复做成一次可回滚的受控操作改完口令不等于收工验证要覆盖“新口令能登录、旧口令不能登录、保存后重启仍生效、冗余对端状态一致”四件事。我一般把验证放在重启前后各做一次重启前用新会话登录一次确认 admin 和 root 都能进重启后再登录一次确认不是会话缓存。验证时只做只读检查别再顺手改配置否则一旦出问题排查范围会被自己扩大。检查项重启前重启后判断标准root 新口令新会话登录再登录一次能进维护 shelladmin 新口令新会话登录再登录一次能进管理视图旧口令尝试一次尝试一次应失败不能留着配置保存看保存回显看启动后状态口令不回退冗余对端逐台确认逐台确认版本和用户状态一致# 重启后重新登录先做只读检查 tmsh show sys version tmsh show auth user admin # 确认当前登录身份避免用旧会话误判 id # 如需留痕记录操作时间和设备标识不记录明文口令 dateshow sys version用来确认重启后版本没有异常show auth user admin确认用户对象还在id确认当前会话身份。记录操作时间是为了和变更单对齐明文口令不要写进任何日志或工单。账号锁定策略也要补查有些环境改密后连续输错会触发锁定验证时不要反复试旧口令旧口令验证一次就够失败就停。6.1 账号锁定与审计留痕的补做改密后要检查账号锁定阈值和审计日志是否正常写入。锁定阈值太紧现场验证时输错两次就锁账号反而增加恢复成本审计日志没开后续查不到谁在什么时间改了口令。我一般只读查看用户状态和日志配置不改策略策略调整走变更流程不和口令恢复混在同一次操作里。留痕只记设备标识、操作时间、操作人和结果不记口令本身这是底线。# 只读查看用户状态确认没有被锁定 tmsh show auth user admin # 只读查看日志配置确认审计链路正常 tmsh list sys log-config # 记录操作时间便于和变更单对齐 dateshow auth user admin看状态list sys log-config看日志配置date记时间。三条都不改配置适合放在收尾阶段。若发现账号已被锁定不要继续试口令按设备自身的解锁流程处理若日志配置缺失先记下来另行安排变更不要在现场顺手改。从那以后我每次做控制台口令恢复都会先把串口参数、当前提示符、保存路径和回滚窗口写在纸上执行一段勾一段改密命令可以短验证动作不能省。希望帮到你。本文还有配套的精品资源点击获取