Nextcloud 因丢失 secret 导致无法进行两步验证的解决方案
项目场景:
搭建了一套NextCloud私有网盘,为保证数据账号安全。在后台开启了强制TOTP两步验证。
问题描述
在进行TOTP验证后,因为手机丢失导致无法获取TOTP验证码而无法登录Nextcloud。
解决方案:
Nextcloud部署时采用的是Postgresql数据库,首先连接上数据库,在数据库中找到表oc_twofactor_backupcodes,该表中存储的是用户账号和TOTP的密钥。

通过Nextcloud后台用户菜单找到该用户的用户名,并和表中的用户名进行比对,找到丢失手机的用户数据。
可以看到该表中secret字段数据都是通过加密的,并且不知道是通过何种方式进行加密的,所以想通过解密获取 secret 不太现实。
最终解决方案,找到一个可以进行验证的用户,然后将该用户的 secret 字段的数据复制并覆盖丢失手机用户的 secret 上。然后使用该可验证用户的密码进行验证即可解决。
登录之后在取消并重新开启TOTP即可重新添加两步验证数据。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 数智AI运维笔记
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果