帳號、雙重驗證與 API 權杖
Bucket & Code Server IDE 有自己的帳號:同一帳號以相同名稱及密碼登入面板、Git、SVN、Bucket 與編輯器。QTS 帳號無法登入。本指南說明雙重驗證、啟用後 git 與 WebDAV 用戶端使用的密碼、指令碼的 API 權杖,以及密碼錯誤次數過多時的處理方式。
- 角色viewer、member、developer、admin
- 2FA手機產生的驗證碼
- 用戶端存取權杖、應用程式密碼
- 權杖供指令碼與 CI 使用
- 鎖定以及恢復存取
圖片取自依本指南填寫各欄位的面板。開發者名稱是 ola ,管理員是 ewa;QR 碼已模糊處理,金鑰、應用程式密碼與權杖都是範例。雙重驗證與應用程式密碼的圖片來自面板的測試資料。
01角色
| 角色 | 允許的操作 |
|---|---|
| viewer / member | viewer 可讀取面板;Backups、Storage、Users 與 Logs 僅供管理員使用。member 也能寫入已獲授寫入權限的 Git、SVN 與 Bucket,但無法使用編輯器、cron 工作或建置功能。這兩種角色都無法建立 Git 儲存庫或組織。member 無法推送至 developer 以下帳號擁有或管理的 Git 儲存庫;啟用 CI 時,也無法推送至已啟用 Actions 的儲存庫 |
| developer | 還能開啟編輯器、建置應用程式、執行自己的 cron 工作,並將套件發布至 NAS 的儲存庫(由管理員加入清單) |
| admin | 所有操作:帳號、設定、儲存空間、網路、模組、啟用應用程式及載入核心模組 |
developer 角色在 NAS 上具有 root 權限:編輯器終端機、開發者的 cron 指令,以及其可推送儲存庫的 CI 工作流程,全部以 root 執行。只應將此角色授予您願意交付 NAS 管理員密碼的人。在將任何內容發布至網際網路之前,請先為所有 developer 與 admin 啟用雙重驗證。
02啟用雙重驗證
每個帳號自行在 Your account (活動列底部的按鈕)啟用。
- 按下 Set up two-factor authentication。

- 使用手機上的驗證器應用程式掃描 QR 碼,或在應用程式中輸入金鑰。輸入目前顯示的 6 位數驗證碼,再按下 Turn on。確認驗證碼之前,登入方式維持原狀。

- 從現在起,登入時會在密碼之後要求驗證碼。


- 驗證碼共有 6 位數,每 30 秒更換一次。提前或延後 30 秒的驗證碼仍可使用。同一驗證碼不會接受兩次。
- 如果新產生的驗證碼仍失敗,手機時間可能不準確:請開啟自動設定時間。
- 關閉雙重驗證需要您的密碼。
03啟用雙重驗證後的 Git、SVN 與 Bucket
啟用雙重驗證後,git、SVN 與 WebDAV 用戶端不再接受帳號密碼,改用以下方式:
- 透過 HTTP 或 HTTPS 使用 Git: 使用 Forgejo 存取權杖,在 Forgejo 的 Settings → Applications中建立。SSH 金鑰的使用方式不變。
- SVN 與 WebDAV 用戶端: 使用在 Your account 建立的應用程式密碼。密碼由 25 個隨機字元組成,分為五組,只顯示一次。新密碼會取代舊密碼;變更帳號密碼或關閉雙重驗證會刪除它。

04指令碼與 CI 使用的 API 權杖
指令碼或 CI 工作使用 API 權杖代替密碼。在 Your account 按下 New token,以用途為其命名,並選擇權限範圍。

- 權限範圍
read、write與admin分別對應 viewer、developer 與 admin 角色。權杖以最高的範圍運作,但不會超過擁有者目前的角色。沒有對應 member 的範圍;member 只能建立 read 權杖。 - 權杖只顯示一次,bvsd 僅保留雜湊值。指令碼以下列格式傳送:
Authorization: Bearer bvs_…。 - 新密碼會撤銷擁有者的所有權杖;停用帳號後,其權杖也無法再使用。
- 權杖無法變更密碼或雙重驗證,也無法建立或刪除權杖,因此外洩的權杖無法將擁有者鎖在帳號外。請刪除不再使用的權杖;之後仍傳送它的程式會收到 401。
05密碼錯誤與鎖定
- 同一位址在 15 分鐘內登入失敗五次,該位址就會鎖定 15 分鐘,即使密碼正確也無法登入。IPv6 用戶端以其 /64 網段計算。
- 同一位址對同一帳號失敗五次,會禁止該位址登入該帳號 15 分鐘。
- 多個位址對同一帳號登入失敗,會讓後續登入增加 125 毫秒至 2 秒的延遲。來自區域網路的失敗不會鎖定帳號。
- 從上次成功登入起,同一帳號由網際網路登入失敗 20 次,就會鎖定其網際網路存取,不論來自哪些位址。帳號仍可從區域網路登入。次數可在 Users 頁面設定;0 會關閉此鎖定功能。

位於反向代理後方時,只有在代理已設為受信任的情況下,面板才會計算代理回報的位址。否則所有用戶端都算成代理本身的位址,任何人輸入五次錯誤密碼都會將所有人鎖在外面。
06管理員可以做什麼
管理員在 Users 頁面按下帳號所在列,即可開啟該帳號。
- 手機遺失時:在 Two-factor authentication 下選擇 Turn it off 。在帳號重新設定之前,只需密碼就能登入。

- 帳號的網際網路存取遭鎖定時:選擇 Unlock或設定新密碼。
- Set a new password 會結束帳號的工作階段並撤銷其 API 權杖。
- 停用帳號會立即結束其工作階段並停止權杖;資料仍會保留。最後一個啟用中的 admin 無法降級、停用或刪除。
- 停用帳號或角色改為 member 或 viewer 的帳號,其 cron 工作會保留但不會執行。刪除帳號也會刪除其工作(1.0.0-52 版起,請參閱 排程工作)。
07管理員遭鎖定時
NAS 管理員可從 NAS 上的 SSH 工作階段重設任何帳號。這些指令透過只有 root 能開啟的 socket 與 bvsd 通訊,每筆都會記錄在資料目錄內的 log/audit.log :
/usr/bin/bucketvs/bin/bvs user list /usr/bin/bucketvs/bin/bvs user password administrator /usr/bin/bucketvs/bin/bvs user totp-reset administrator /usr/bin/bucketvs/bin/bvs user unlock administrator
bvs user password會設定並顯示一組新的 20 字元隨機密碼。帳號下次登入時必須自行選擇密碼;其工作階段會結束,API 權杖也會撤銷。bvs user totp-reset會關閉該帳號的雙重驗證。bvs user unlock會解除網際網路密碼錯誤次數過多造成的鎖定。