我最近被锁定了我的 UniFi 控制器(本地安装),并且我关闭了远程访问。 控制器安装在 Windows 10 (20H2) VM 上。我可以很好地进入虚拟机,但是当我尝试登录本地主机网站时,它不喜欢我以为我设置的密码。
有人知道如何做到这一点吗?
在四处寻找并查看各种答案之后,我能够整理出一套对我有用的说明。我想我会在这里分享这些。如果这些在 Mac 或 Linux 上不起作用,请告诉我,因为我只在 Windows 上进行了测试。
找出 UniFi 控制器安装的 mongodb 版本:
%UserProfile%/Ubiquiti UniFi/Logs
mongo.log 文件的第 3 行将显示数据库版本号,我的情况是:
I CONTROL [initandlisten] db version v3.4.15
访问 https://www.mongodb.com/try/download/community
在 MongoDB 社区服务器区域,将版本更改为与您的控制器最匹配的版本,在我的例子中是 3.4.24
操作系统应默认为您当前的操作系统 Windows/Mac/Linux
选择 zip 的包类型,除非您想安装此版本的 mongo,否则您只想运行可执行文件。
下载并解压
在 CMD 中导航到解压后的 mongo 安装文件夹的子文件夹“bin”。 类型:
mongo --port 27117
use ace
db.admin.find()
复制“_id”键和值
复制“x_shadow”键和值
接下来,您需要安装 whois 软件包才能访问 mkpasswd 实用程序
使用 WSL linux 发行版 或者您也可以使用 Cygwin Utilities,它具有所需的 mkpasswd 实用程序(注意: Cygwin 的 [mkpasswd] 版本不支持 --method 选项)
UniFi mongo 安装的盐是 9Ter1EZ9$lSt6
运行:
mkpasswd --method=sha-512 --salt=9Ter1EZ9$lSt6 your-new-password
将结果复制到文本文件
将以下内容添加到同一文本文件中,并使用刚刚生成的数据更新 x_shadow:
db.admin.update({ "_id" : ObjectId("your-ObjectId-value-string")},{$set: {"x_shadow" : "result-of-mkpasswd-here"}})
将以上内容复制并粘贴到cmd中
使用您的电子邮件和新密码登录 UniFi 控制器
注意:您还可以更新电子邮件或用户名,但这不应该 是必需的,因为您将通过运行 db.admin.find()
在转储中获取该信息注意:Rob 的博客中提到的网站“https://quickhash.com/crypt3-sha512-online”似乎并不活跃 不再有类似名称的quickhash-gui.org 不提供我能找到的盐选项。
我可以确认 Dan Awesome(如下)的指示有效。我在底层 Ubuntu 22.04 操作系统上的 Docker 中运行了 Unifi。我执行 docker exec -it unifi /bin/bash
来 ssh 进入 Docker 机器,然后这些指令按预期工作。 (我确实必须安装
whois
才能获得
mkpasswd
。)谢谢!