帳號與啟用
零設定啟用、CI 與無人值守機器、離線時會發生什麼,以及撤銷一台裝置究竟代表什麼。
啟用會把一台機器納入你的帳號名下。正常使用情況下你幾乎不會手動執行它——它已經整合進第一次加密的流程裡。
零設定啟用
在新機器上第一次呼叫 protect / protect-model / build,會一步完成登入(開啟瀏覽器)與啟用,接著進行加密:
shell
magiclock protect app.py # first run: sign in + activate, then encrypt
magiclock protect app.py # every run after: encrypts immediately, no prompts明確指令
正常情況下你很少會直接用到這些指令,但需要時它們都在:
shell
magiclock activate # authenticate (opens a browser) + provision this machine
magiclock activate --no-browser # print a link + code instead of opening a browser
magiclock status # this machine's account + activation state
magiclock status --offline # same, without a live server round-trip
magiclock deactivate # remove this machine (frees its seat server-side by default)
magiclock deactivate --local-only # remove it locally only, without touching the serverCI 與無人值守機器
用入口網站鑄造的權杖取代開啟瀏覽器:
shell
export MAGICLOCK_TOKEN=<token-from-your-account-portal>
magiclock protect app.py # provisions non-interactively, then encrypts正式發行版的 CLI 也內建了授權伺服器的網址,所以只有在你要指向非預設位址時,才需要設定 MAGICLOCK_SERVER。
環境變數
| 變數 | 用於 | 用途 |
|---|---|---|
MAGICLOCK_TOKEN | activate,以及首次加密時的自動啟用 | 非互動式登入所使用的 Bearer 權杖。 |
MAGICLOCK_SERVER | activate | 覆寫授權伺服器網址(很少需要)。 |
MAGICLOCK_PASSPHRASE | protect/protect-model/run | 供 --lock-passphrase 或便攜 --passphrase 產物使用的非互動式密碼片語。 |
MAGICLOCK_DECRYPT_KEY | run | 便攜 --emit-key 產物中 run --key 的替代方式。 |
MAGICLOCK_NO_BROWSER | 任何驗證流程 | 抑制自動開啟瀏覽器(無圖形介面的 Linux 也會自動偵測到)。 |
MAGICLOCK_NO_OS_KEYRING | 所有指令 | 跳過作業系統鑰匙圈對本地憑證儲存區的額外包裝——在沒有鑰匙圈服務的精簡容器中很有用。 |
離線時會發生什麼
加密(protect/protect-model/build)每次都會向授權伺服器核實。若核實成功,就沒問題。若網路中斷:
| 情況 | 結果 |
|---|---|
| 伺服器可連線,授權有效 | 正常加密。 |
| 伺服器無法連線,且最近一次成功核實在 12 小時之內 | 使用離線寬限窗口繼續加密。 |
| 伺服器無法連線,且尚未有成功核實紀錄(或寬限已用盡) | 阻擋,直到重新連線為止。 |
| 伺服器可連線但明確拒絕(裝置遭撤銷、方案已過期/取消) | 立即阻擋——不論在線或離線,這種情況都不給予寬限。 |
解密與 magiclock run 完全不受上述任何情況影響。 它們只會讀取本地、已經啟用好的保管庫——永遠不需要網路請求,也不依賴伺服器。不論這台機器現在是連線、離線,或是自啟用後就從未連過網,都一樣。
撤銷與停用
magiclock deactivate(未加 --local-only)會通知伺服器釋出這台機器的席位,並阻止它加密任何新內容。它不會回頭影響這台機器先前已經產生的產物——那些產物仍會照常解密,因為解密從不查詢伺服器或任何撤銷清單。如果一台機器遺失或遭入侵,停用它可以阻止它繼續在你帳號名下產生新的受保護產物;但無法追溯撤銷這台機器先前已經產生的檔案。