在公司电脑、公共电脑或临时设备上访问自建 Nextcloud 时,传统的账号密码登录并不理想。
一方面,需要在陌生设备上输入密码;另一方面,即使使用浏览器隐私窗口,也仍然可能留下下载文件、剪贴板内容或系统级访问记录。
Passkey 提供了一种更方便的思路:
- 在陌生电脑上打开 Nextcloud 登录页面;
- 选择使用 Passkey 或其他设备登录;
- 电脑显示二维码;
- 使用手机扫码;
- 在手机上通过指纹、面容或锁屏密码确认;
- 电脑自动完成登录。
整个过程中,Nextcloud 密码不需要输入到陌生电脑上。
不过,这种登录方式有一个容易被忽视的前提:电脑通常需要具备蓝牙功能。
Nextcloud 是否支持 Passkey
Nextcloud 支持基于 WebAuthn/FIDO2 的身份验证。
根据 Nextcloud 版本、管理员配置和已启用的应用,WebAuthn 可能以两种形式出现:
- 作为登录密码之后的第二因素;
- 作为无密码登录方式。
如果目标是在陌生电脑上不输入密码,应当使用无密码认证或 Passkey 登录,而不是只配置“密码加 WebAuthn 二次验证”。
通常可以在 Nextcloud 的个人安全设置中找到类似以下选项:
- Passwordless Authentication
- WebAuthn
- Security Keys
- Passkey
- 添加无密码设备
不同版本和语言环境下,名称可能略有差异。
注册 Passkey 时,可以将凭据保存在:
- Android 或 Chrome 使用的密码管理器;
- Apple iCloud 钥匙串;
- 支持 Passkey 的第三方密码管理器;
- USB FIDO2 安全密钥。
配置完成后,建议先使用另一台可信设备实际测试一次,确认二维码登录、用户名识别和二次验证流程都符合预期。
陌生电脑上的典型登录流程
在支持跨设备 Passkey 的浏览器中,登录流程通常如下:
- 打开浏览器隐私窗口;
- 访问 Nextcloud 的 HTTPS 地址;
- 输入用户名,或选择使用其他设备登录;
- 选择手机、平板电脑或安全密钥;
- 浏览器显示二维码;
- 使用保存了 Passkey 的手机扫码;
- 手机要求进行生物识别或锁屏验证;
- 验证成功后,Nextcloud 在电脑上完成登录。
这种模式的优势是,Passkey 私钥不会复制到临时电脑上,Nextcloud 密码也不需要在该设备中输入。
为什么扫码登录还需要蓝牙
很多人会自然地认为:
二维码已经把手机和电脑连接起来了,为什么还要蓝牙?
原因是,二维码只能让手机知道“这次登录请求是什么”,却不能证明手机与发起登录的电脑确实处在同一地点。
跨设备 Passkey 通常采用一种被称为混合传输的机制。它会同时使用:
- 二维码;
- Bluetooth Low Energy,简称 BLE;
- 互联网加密连接。
三者承担的职责并不相同。
第一步:电脑生成一次性二维码
电脑上的浏览器启动 Passkey 登录后,会为这一次会话生成临时信息,例如:
- 一次性随机值;
- 临时加密密钥;
- 本次认证通道所需的连接参数。
这些信息会被编码进二维码。
二维码里通常不包含:
- Nextcloud 密码;
- 手机的 Passkey 私钥;
- 可以长期重复使用的登录凭据。
它只是当前这次登录请求的临时入口。
第二步:手机扫描二维码
手机扫描二维码后,会获得建立本次认证连接所需的信息。
此时手机知道:
- 哪一台浏览器正在发起请求;
- 当前会话使用什么临时参数;
- 应当发送什么样的近距离验证信号。
随后,手机会通过 Bluetooth Low Energy 发出一个短暂的广播。
这不等同于传统蓝牙配对。
通常不需要:
- 在系统设置中搜索设备;
- 输入蓝牙配对码;
- 长期保存蓝牙配对关系。
手机只是针对当前登录请求发送一次临时 BLE 广播。
第三步:电脑监听手机的蓝牙广播
电脑根据二维码中生成的临时信息,监听附近的 BLE 广播。
只有与当前二维码相匹配的广播,才能被识别为有效信号。
可以将其简化理解为:
电脑生成一次性暗号
↓
暗号被编码进二维码
↓
手机扫码获得暗号
↓
手机在附近通过蓝牙广播对应信号
↓
电脑收到并验证信号
这一步证明的不是“附近有一台手机”,而是:
扫描了当前二维码的手机,确实处于这台电脑能够接收到蓝牙信号的范围内。
蓝牙不是主要的数据传输通道
在跨设备 Passkey 登录中,蓝牙主要用于确认设备接近。
真正的认证数据往往通过互联网中的加密通道传输。
因此,可能出现以下情况:
- 电脑连接公司有线网络;
- 手机使用 4G 或 5G;
- 两台设备并不在同一个 Wi-Fi;
- 登录仍然可以完成。
可以简单概括为:
二维码:交换一次性连接信息
蓝牙:证明手机和电脑处于附近
互联网:传输加密认证数据
因此,电脑没有蓝牙时,缺失的通常不是互联网通信能力,而是“近距离存在证明”。
蓝牙究竟证明了什么
蓝牙并不能精确测量手机距离电脑有多少厘米。
普通 BLE 受以下因素影响:
- 天线性能;
- 墙壁和障碍物;
- 信号反射;
- 周围无线环境;
- 设备发射功率。
它通常只能证明:
电脑确实接收到了手机针对本次登录请求发出的近距离广播。
这意味着两台设备大概率位于同一房间或相邻区域,但不能视为精确定位系统。
因此,这种机制更适合称为“近距离存在验证”,而不是“精确距离验证”。
为什么不能只扫描二维码
假设跨设备登录只需要扫码,不需要蓝牙,那么可能出现如下攻击:
- 攻击者在远程电脑上打开登录页面;
- 攻击者截取登录二维码;
- 二维码通过聊天软件或网页发给受害者;
- 受害者误以为是在确认正常操作;
- 受害者扫码并在手机上确认;
- 攻击者的远程电脑获得登录权限。
加入蓝牙确认后,发起登录的电脑还必须在本地收到手机的 BLE 广播。
即使攻击者拿到了二维码截图,如果其电脑距离手机很远,也无法直接完成近距离验证。
蓝牙因此增加了一道针对远程转发攻击的防护。
电脑没有蓝牙还能不能扫码登录
对于标准的手机扫码 Passkey 跨设备认证,电脑通常需要支持并开启蓝牙。
电脑没有蓝牙时,可能出现以下现象:
- 二维码可以正常显示;
- 手机也可以正常扫码;
- 手机可以识别认证请求;
- 但电脑无法完成附近设备验证;
- 最终登录流程失败。
具体表现会因浏览器、操作系统和 Passkey 提供商不同而变化,但不能将“二维码能显示”理解为“登录一定能完成”。
没有蓝牙时的替代方案
使用 USB FIDO2 安全密钥
对于没有蓝牙的公司电脑,USB FIDO2 安全密钥通常是最合适的替代方案。
操作流程一般为:
- 将安全密钥插入电脑;
- 打开 Nextcloud 登录页面;
- 选择安全密钥或 Passkey 登录;
- 触摸安全密钥;
- 必要时输入安全密钥 PIN;
- 完成后拔出设备。
安全密钥随身携带,不需要在公司电脑上同步个人密码管理器,也不依赖电脑蓝牙。
使用 USB 蓝牙适配器
理论上,也可以通过 USB 蓝牙适配器为电脑增加蓝牙功能。
但在公司环境中可能存在以下限制:
- 禁止连接未知 USB 设备;
- 无权限安装驱动;
- 蓝牙功能被组策略关闭;
- 浏览器无法访问蓝牙相关能力;
- 安全软件阻止外接无线设备。
因此,这种方式是否可行取决于公司终端策略。
使用密码和 TOTP
如果 Passkey 无法使用,传统的密码加一次性验证码仍然是可靠的备用方案。
但在陌生电脑上输入主密码时,应特别注意:
- 确认网站域名正确;
- 确认 HTTPS 证书正常;
- 不允许浏览器保存密码;
- 使用完毕后主动退出登录;
- 关闭所有隐私窗口。
隐私窗口并不等于完全无痕
使用浏览器隐私窗口,可以减少本地浏览器长期保留的数据,例如:
- 登录 Cookie;
- 普通浏览历史;
- 表单记录;
- 浏览器会话状态。
关闭全部隐私窗口后,Nextcloud 通常不会继续保持登录状态。
但隐私窗口无法清除所有痕迹。
以下内容仍可能被保留:
- 下载到电脑本地的文件;
- 复制到系统剪贴板的文本;
- 截图和打印内容;
- 公司代理服务器日志;
- DNS 查询记录;
- 终端管理软件记录;
- 网络访问审计;
- Nextcloud 服务器端登录日志;
- Nextcloud 已创建的会话记录。
因此,正确做法应当包括:
- 不在临时电脑上下载敏感文件;
- 尽量避免复制重要内容到剪贴板;
- 使用完毕后主动退出 Nextcloud;
- 关闭全部隐私窗口;
- 必要时在 Nextcloud 安全设置中撤销对应会话;
- 不在公司设备中登录个人密码管理器进行长期同步。
Passkey 私钥会不会传到电脑
在正常的跨设备 Passkey 登录中,Passkey 私钥不会传输到临时电脑。
认证时,Nextcloud 会生成一个一次性挑战。
该挑战经过浏览器和加密通道传递到手机后,手机会要求使用者进行:
- 指纹验证;
- 面容验证;
- 锁屏密码验证;
- Passkey 提供商要求的其他确认。
验证通过后,手机使用 Passkey 私钥对挑战进行签名。
返回给 Nextcloud 的是签名结果,而不是私钥本身。
Nextcloud 再使用账户中登记的公钥验证签名是否有效。
因此,即使登录发生在不可信电脑上,正常情况下,该电脑也无法获得可长期复制使用的 Passkey 私钥。
使用前应当检查的条件
准备使用 Nextcloud Passkey 之前,建议确认以下条件:
- Nextcloud 使用有效 HTTPS;
- 当前 Nextcloud 版本支持 WebAuthn;
- 管理员已启用相关无密码认证功能;
- 浏览器支持跨设备 Passkey;
- 手机已经保存对应 Passkey;
- 电脑和手机蓝牙均可用;
- 两台设备都能访问互联网;
- 公司策略未禁止该功能;
- 账户仍保留备用恢复方式;
- 已在非关键设备上完成过一次实际测试。
还应当准备至少一种备用登录方式,例如:
- 恢复代码;
- TOTP 验证器;
- 第二把安全密钥;
- 另一台保存了 Passkey 的设备;
- 管理员恢复渠道。
只配置单一 Passkey 而没有恢复方案,可能在手机损坏、账号同步异常或设备丢失时导致无法登录。
适合陌生电脑的推荐方案
根据电脑条件,可以采用以下策略。
电脑有蓝牙
优先使用:
隐私窗口
+
手机扫码 Passkey
+
手机生物识别
这种方式不需要在电脑上输入 Nextcloud 主密码。
电脑没有蓝牙,但允许使用 USB
优先使用:
隐私窗口
+
USB FIDO2 安全密钥
这是最接近手机扫码体验的替代方案。
电脑既没有蓝牙,也禁止 USB 设备
只能考虑:
隐私窗口
+
密码
+
TOTP
登录后应避免下载数据,并在使用完成后主动退出。
总结
Nextcloud 的 WebAuthn/Passkey 功能可以显著改善陌生电脑上的登录体验。
跨设备扫码登录并不是简单的“手机扫一下二维码”,而是由多个环节共同完成:
- 二维码为本次会话交换临时连接参数;
- 蓝牙证明手机与电脑处于附近;
- 互联网传输加密的认证消息;
- 手机本地完成指纹、面容或锁屏验证;
- Passkey 私钥只在认证器一侧完成签名,不会发送给电脑。
因此,电脑没有蓝牙时,手机扫码 Passkey 通常无法完成完整的近距离验证。
对于没有蓝牙的电脑,USB FIDO2 安全密钥是更稳定、也更适合临时设备的解决方案。
同时需要注意,隐私窗口只能减少浏览器本地残留,并不能对公司网络、终端管理系统或服务器日志实现真正意义上的“完全无痕”。