认证与 2FA
使用密码或 Google OAuth 登录保护你的 sh0 实例,并通过双因素认证添加额外的保护层。
登录方式
sh0 为人员提供两种登录方式,二者都会打开同一个控制台会话;程序则使用 API 密钥。
密码认证
默认方式。系统没有默认凭据:第一个账户在全新安装的设置页面上创建,其他账户均由管理员邀请。
登录交互、会话 Cookie 和双因素步骤的开发者说明见API 身份验证。
sh0 登录页面,包含邮箱和密码字段
Google OAuth
对于 sh0 Cloud 用户,Google 登录可作为登录方式使用。这使用 Google 的 OAuth 2.0 流程,通过 JWKS 进行 ID 令牌验证。
- 在登录页面点击 使用 Google 登录。
- 使用你的 Google 账户进行认证。
- sh0 验证 ID 令牌并创建或关联你的账户。
带有 Google 登录按钮的登录页面
Note
对于自托管实例,Google OAuth 需要配置带有 OAuth 凭据的 Google Cloud 项目。参见 设置 → 认证 输入你的 Client ID 和 Client Secret。
启用双因素认证
双因素认证(2FA)通过在常规凭据之外要求输入基于时间的一次性密码(TOTP)来增加额外的安全层。
- 在控制台中打开您的个人资料页面。
- 点击启用 2FA。
- 使用认证器应用(Google Authenticator、Authy、1Password 等)扫描二维码。
- 输入认证器应用中的 6 位验证码以完成设置验证。
- 将备用恢复码保存在安全的位置。
2FA 设置界面,显示二维码和验证字段
启用后,每次登录都需要在输入邮箱和密码后提供 6 位 TOTP 验证码。
Warning
如果您同时丢失了身份验证器和备用码,可以直接在服务器上恢复账户,无需登录。该命令会重置密码、关闭双因素认证并撤销所有已打开的会话:
sudo sh0 users reset-password [email protected] --disable-2faPassword reset for [email protected] (318a52d95557639444c765ea8de8b0f5)
Revoked 14 refresh token(s). Sessions already open are rejected on their next request -- they are not left alive until their access token expires.不带 --password 时,会生成并打印一个随机临时密码。用它登录后,请设置新密码并重新启用双因素认证。
备用恢复码
启用 2FA 时,sh0 会生成 20 个一次性备用码,并且只存储其哈希值。若无法使用身份验证器,每个备用码可代替一次 6 位验证码。
Danger
将备用恢复码存储在安全的离线位置(密码管理器、保险柜中的打印纸)。如果丢失认证器设备,这些恢复码是你唯一的恢复方式。它们仅在 2FA 设置时显示一次。
您可以在个人资料页面通过重新生成备用码来重新生成。需用当前的 6 位验证码确认,之前的所有备用码随即失效。
更改密码
要更改密码:
- 打开您的个人资料页面。
- 前往密码部分。
- 输入当前密码和新密码。
- 确认新密码并保存。
个人设置中的更改密码表单
密码在存储前使用 Argon2id 进行哈希处理。sh0 强制要求最低密码长度为 8 个字符。
Tip
修改密码会立即注销所有其他会话:任何掌握旧密码的人都会立刻失去访问权限。
会话管理
控制台会话有效期为 24 小时,只要您持续使用控制台便会自动续期;连续 30 天未使用的会话将结束。系统没有可管理的会话列表:要结束某个账户的全部会话,请修改其密码,或在服务器上运行上述恢复命令。