安全

Bybit API Key 安全教學 — 只讀 / IP 白名單 / Sub-account 隔離

2026-08-12·12 分鐘閱讀

你要把 TradingView 訊號、或某個交易機器人接到 Bybit 自動下單,第一件事就是建一把 API key——也就是給程式代替你打交易所的通行證。大多數人在這一步權限給太寬,因為 Bybit 的權限勾選介面比 Binance 細,欄位又寫成 ContractTradeWallet 這種對映不明顯的名字,隨手勾一勾就把 Withdraw(提幣)帶進去。這篇把 Bybit 官方 V5 API 文件、加上我們自己跨 10 家交易所的權限檢查清單對過的部分整理成 Bybit 專用版,只講會影響你風險大小的三件事。

這篇不比較 Bybit 跟其他家的資安誰做得好——那需要跨交易所實測與內部制度審計,我們沒做過,這篇也不會做。範圍縮在 API key 一層,因為只要這一層設對,就算下游工具被駭資金也搬不走;設錯了,後面所有防護都變裝飾。

先講結論
三件事、依重要性排序:建 key 時不要勾 Wallet 底下的 Withdraw把跑機器人的 key 放在 sub-account——也就是子帳戶,因為 Bybit 官方在 API 層級就把 Withdraw 標成「master 專屬」,子帳戶的 key 在結構上就領不到這個權限;順手把工具給你的 IP 填進IP 白名單,Bybit 允許多個 IP 用逗號分隔。這一條對 Bybit 特別重要,因為官方 API 文件明文寫著「No ip bound api key will be invalid after 90 days」——沒綁 IP 的 key 90 天後失效。

Bybit API Key 安全的第一件事:搞懂權限模型(兩把 key,UTA 是預設)

Bybit V5 API 的認證只用兩把 key——ACCESS-KEY 加上 Secret Key,官方 HTTP header 名稱是 X-BAPI-API-KEYX-BAPI-SIGN。這一點跟 Bitget、OKX 需要第三把 Passphrase 不一樣,也跟 Binance/BingX 一致。

少一把 key 意味著你少一件事要藏。但同時也意味著只要這兩把外洩,攻擊者就湊齊整個簽章材料,沒有第三層防線可以擋。

Bybit 從 V5 開始把 Spot、Derivatives、Options 全部整合進「Unified Trading Account」(UTA,統一交易帳戶),現在新註冊的帳戶預設就是 UTA 模式。這在 API 層級的影響是——你的一把 key 可以同時勾 ContractTradeSpotOptionsDerivatives 這些分類,一次跑三種產品都可以。

權限分類官方欄位值自動交易機器人需要嗎
Read-OnlyreadOnly=1只想讀行情或部位的話設 readOnly=1;要下單就得 readOnly=0
ContractTrade(合約)Order、Position跑合約策略必勾——包含下單、撤單、改倉位
Spot(現貨)SpotTrade跑現貨策略勾這個
Options(USDC 選擇權/永續)OptionsTrade跑選擇權才勾,不然不用
Derivatives(UTA 統一)DerivativesTradeUTA 帳戶跑衍生品的整合欄位
Wallet.AccountTransferAccountTransfer多數機器人不需要——除非策略會自己搬錢
Wallet.WithdrawWithdraw(master 專屬)絕對不要勾——子帳戶的 key 官方文件寫明不可能有這個欄位
ExchangeExchangeHistory查 convert 紀錄,一般用不到

來源:Bybit V5 官方 apikey-info 文件(查證 2026 年 8 月)與跨 10 家交易所檢查清單。實際介面文字會隨 Bybit 前端改版而變。

Bybit 建 key 的介面會給你兩個選擇:System-generated 或 Auto-generated。

System-generated(HMAC)Auto-generated(RSA)
誰產出 secretBybit 幫你產一對你在本機用 api-rsa-generator 產
Bybit 側有沒有你的私鑰有(HMAC 是共用祕密)沒有——你只上傳公鑰
下游工具支援度幾乎所有工具都支援老工具不見得吃 RSA_SHA256
適合誰新手、SaaS 使用者懂 RSA、自架服務、要求最嚴的老手

RSA 這條的優點是「Bybit never holds your private key」——就算 Bybit 那邊資料被撈也不會漏你的 secret。缺點是要多花時間安裝,而且下游工具得支援 RSA 簽章。如果你用的是 SaaS 型交易機器人,先問對方支不支援 RSA;多數情境下 HMAC 就夠用。

三個必做設定:關 Withdraw、綁 IP、用 sub-account

設定一:不要勾 Wallet 底下的 Withdraw

這一條的重要性在於它決定了 key 外洩時的損失規模,其他兩條決定的是外洩機率。

就算你把 IP 白名單設得再嚴、Secret Key 藏得再深,只要 key 漏出去——電腦中毒、SaaS 被駭、自己手滑 push 到公開 repo。Withdraw 有沒有勾,決定的是駭客能不能直接把錢搬走

Bybit 在 key 層級把交易跟提幣完全分開,這件事我們的跨交易所檢查清單已經逐條對照過,Bybit 屬於「可以分開」的 9 家之一。所以這件事的難度不是技術限制,是你有沒有記得不勾而已。

Bybit 官方 V5 API 文件把 Wallet 底下的 Withdraw 標成 「Withdraw(master account)」——只有主帳號才有這個欄位,子帳戶的 key 建出來根本不會有這一格。

沒關 Withdraw 的實際後果:資金會在幾分鐘內被搬空
假設你的 key 有 ContractTradeSpotWithdraw 三個權限、又不小心外洩。攻擊者拿到 key 的第一步不是虧你的錢。他會先把你的資產全數 market sell 換成 USDT,接著透過 /v5/asset/withdraw/create 提到他的地址,整個過程可能只需要幾分鐘。

多數人以為的「他頂多亂下單」不是最壞情況。真正發生過的模式就是上面這條路徑:先變現、再提幣。

IP 白名單能不能擋,取決於他有沒有辦法從你設定的 IP 打 API。很多外洩情境(例如你 push 了含 IP 的設定檔)是連 IP 資訊都一起漏出去的。

設定二:綁 IP 白名單,Bybit 允許多個逗號分隔

Bybit 官方 V5 API 的 create-sub-api 文件對 IP 欄位的說明原文是「Set the IP bind. example: 192.168.0.1,192.168.0.2. don't pass ips or pass with * means no bind」——多個 IP 用半形逗號分隔就可以。

這對接 SaaS 型工具很實用,因為對方通常會給你一組 2~3 個固定出口 IP。你自己架的 VPS 通常就 1 個固定 IP。用 SaaS 平台的話對方會給你固定出口 IP——TVSBot 的 dashboard 會直接顯示要填的後端 IP。

其他工具數量不一,接工具之前先問清楚。動態出口 IP 的工具你就綁不了 IP 白名單,得回頭權衡是不是可以接受。

設定三:把跑機器人的 key 放在 sub-account——Bybit 從架構上就把 Withdraw 拿掉了

這一條是這篇跟 Binance 版最大的不同,也是Bybit 在 API 架構上做得最徹底的地方——子帳戶的 key 官方文件明講「Wallet 只能有 AccountTransferSubMemberTransferList」,換句話說子帳戶建出來的 key,即使你想勾 Withdraw 都勾不了。這一節值得單獨拆一個 H2 講清楚。

sub-account 隔離:Bybit 把 Withdraw 從架構上鎖死了

Bybit V5 API 文件的 create-sub-api(建立子帳戶的 API Key)章節,permissions 物件的 Wallet 欄位官方定義原文是「Wallet. ["AccountTransfer","SubMemberTransferList"]」——欄位裡就只有這兩個值可以選,沒有 Withdraw 這個選項

同一份文件的 apikey-info(查 key 資訊)把 Wallet 的完整定義寫成「AccountTransfer, SubMemberTransfer(master account), SubMemberTransferList(sub account), Withdraw(master account)」——Withdraw 被明確標成「master account」專屬。

架構鎖死
子帳戶的 API key 無法擁有 Withdraw 權限(官方 V5 文件明文)
90 天
沒綁 IP 的 key 官方到期天數(比 Binance 30、BingX 14 都寬)
7 天
改過帳戶密碼後、沒綁 IP 的 key 額外失效倒數
2 把
認證需要的 credentials 數(Key + Secret,沒有 Passphrase)

這個差異對你的實務意義很大:就算你子帳戶的 key 完全外洩,攻擊者也沒有辦法直接提幣

他最多只能亂下單、把子帳戶內的資金 market sell 成別的幣,但他打不了 Bybit 的提幣 API——那個 endpoint 會直接因為權限不足被 Bybit 拒絕。這是 Binance 只能靠「你自己記得不勾」達成的效果,Bybit 用 API 架構做成硬性規定。

什麼時候值得開 sub-account
簡單的判斷基準是——如果你機器人管理的資金超過你可以承受一次歸零的金額,就值得開子帳戶隔離。

舉例:你主帳號有 10 萬 USDT,機器人只跑 5,000 USDT 的策略——那把這 5,000 分到獨立子帳戶,出事的話最多損失 5%,比全部混在主帳號安全很多。這個原則不是 Bybit 專屬,是所有多資產帳戶的通用做法。

但 Bybit 從 API 架構上就把子帳戶的提幣路徑拿掉,等於幫你把「忘記勾錯」這個常見錯誤事先擋掉了。

1
你放在 Bybit 上跑機器人的資金,超過你能一次全損的金額嗎?
沒有直接在主帳號建一把 key,不勾 Withdraw、綁 IP 就夠了
往下一步
2
需不需要主帳號自動搬錢給機器人補保證金?
不用建子帳戶,資金一次撥過去,子帳戶內建 key(連 Withdraw 選項都沒有)
建子帳戶,主帳號另建一把只有 AccountTransfer 權限的 key 給搬錢用;機器人的下單 key 仍放子帳戶
BinanceBitgetBybit
sub-account 的 key 能不能勾 Withdraw能勾(要自己記得不勾)能勾(要自己記得不勾)不能勾——API 架構就拿掉了
sub-account 建 key 的方式主帳號代建sub-account 自己建(需主帳號開權限)master API 呼叫或直接用 sub-account 登入建
認證需要幾把 credential2 把(Key + Secret)3 把(Key + Secret + Passphrase)2 把(Key + Secret)
沒綁 IP 的 key 到期規則30 天閒置刪除官方未寫明90 天失效;改密碼後 7 天失效

這張表不是要判 Bybit 的做法比較好——各家有各家的思路。Bybit 用 API 架構強制子帳戶不能提幣,對會忘記或不熟悉權限模型的人特別友善。Bitget 那種「子帳戶可以自己管 API」的自由度,對團隊各自跑不同策略比較有用。Binance 一手代管的做法,對單人單機器人反而是簡單的。挑哪家看你實際場景。

90 天到期規則:Bybit 有明文,只是比 Binance/BingX 寬

Bybit 官方 V5 API 文件的 create-sub-api 章節、ips 欄位的說明逐字寫著「No ip bound api key will be invalid after 90 days」——沒綁 IP 的 key 90 天後失效。

同段還補了一句:「api key without IP bound will be invalid after 7 days once the account password is changed」——就算 key 才建幾天,只要你改過帳戶密碼,沒綁 IP 的 key 7 天就會失效。

apikey-info 的回應欄位裡有一個 deadlineDay(剩餘有效天數)跟 expiredAt(失效日期),只有沒綁 IP 或改過密碼的 key 才會有值。

這個規則跟 Binance/BingX 的差別,實務上代表什麼
三家對「沒綁 IP 的 key」都設了強制到期,只是天數不同——Binance 30 天、BingX 14 天、Bybit 90 天。

Bybit 的 90 天最寬,意味著你要是接了 Bybit 又忘了綁 IP,機器人不會很快就靜默斷線,但那三個月裡它是裸奔的。反過來說,如果你有綁 IP,這條規則整條不適用,你的 key 會一直好好活著。

查證日期 2026 年 8 月,如果 Bybit 之後改規則、這篇會過時。比較穩的做法是別依賴這個到期機制,自己排程每 6 個月手動輪替一次 key——不管交易所會不會幫你做,你自己做。

建 Bybit API Key 的實際流程

Bybit 的 UI 會偶爾改版,這裡不寫具體像素位置的按鈕動線——只給你必經的步驟骨架。假設你要走「子帳戶跑機器人」這條路,流程比單建一把主帳號 key 多兩步,但整個 workflow 只做一次,之後就穩了。

text
【前置:新帳號 48 小時內不能建 key】
        0. 官方風控規則:新註冊帳號的前 48 小時無法建立 API key
           (官方 help center 明文寫的,時間到了會自動解除)

        【第一次設定:把 sub-account 建起來】
        1. 登入 Bybit → 右上角頭像 → Sub-Accounts
        2. Create Sub-Account → 填 sub-account username(6-16 字,字母數字)
        3. memberType 選 normal subaccount(不要選 custodial)
        4. 從主帳號透過 Universal Transfer 把要給機器人的資金撥到 sub-account

        【建 API key:兩條路二選一】
        路線 A:直接用 sub-account 登入建
        5A. 用 sub-account 帳號登入 → 右上頭像 → API → Create New Key
        6A. 選 System-generated API Keys(新手就這條,走 HMAC)
        7A. 設 note(例如 tvsbot-prod、grid-bot-01)
        8A. 勾權限:Contract Trade 或 Spot Trading(依你策略)
        9A. 不要勾 Withdrawal(sub-account 的 UI 也不會給你這個選項)
        10A. 填 IP 白名單(多個 IP 用半形逗號分隔)
        11A. 過 2FA → 拿到 API Key + Secret(Secret 只顯示一次,立刻複製)

        路線 B:用主帳號 key 呼叫 /v5/user/create-sub-api
        5B. 給機器人建 key 的自動化流程可以走這條,適合有多個 sub-account 要管的情境
        6B. 呼叫時 permissions 物件不要放 Withdraw——放了會被 Bybit 直接拒
        7B. 填 ips 陣列與 note,回應會直接把 apiKey + secret 傳回來

Secret Key 只會顯示一次——這是所有交易所的共通規則。Bybit 不需要 Passphrase,所以你只要存好 API Key 與 Secret 兩把字串就完成了。

密碼管理工具(1Password、Bitwarden、macOS Keychain)都可以。貼進純文字檔案、Slack、Email 是不好的習慣,一次養成一次痛。

怎麼挑串接 Bybit 的自動化工具

Bybit 是我們自己TradingView Webhook 支援交易所整理裡標記「有官方 REST/WebSocket API 可對接、能接自動下單」的名單成員——這代表市面上不少工具都聲稱能接。挑工具時值得問清楚三件事:

  • 它會不會要求你把 key 開 Withdraw 權限?會的話直接跳過這個工具——現貨與合約下單這件事技術上永遠不需要提幣權限,會要求就是架構有問題。
  • 它給你的固定 IP 有幾個?多數 SaaS 是 1~3 個,Bybit 允許逗號分隔多個 IP,你都塞得進去。有些工具是動態出口 IP,這種你就沒辦法綁 IP 白名單。
  • 你的 Secret Key 存在他們那邊的方式是什麼?明文存資料庫是警訊。加密儲存、而且加密主金鑰跟資料庫實體分開存放,是值得問清楚的基本門檻。

就我們自己來說:TVSBot 用 Fernet(AES-128-CBC + HMAC-SHA256)加密儲存你的 API Key 與 Secret,加密主金鑰只放在環境變數、跟資料庫本身分開存放。

每一筆下單都直接用你自己的 key 呼叫 Bybit 的 V5 API,我們不會持有你的資金。Dashboard 會顯示要填進 Bybit 白名單的後端 IP,並在設定文件裡建議只勾 Contract Trade + Spot Trading、不勾 Withdrawal。

同一份 checklist 適用於任何非託管工具、不只 TVSBot——所以就算你最後選了別家,這一節的清單也用得上。

誠實的一段:這篇文章沒解決的問題

即便你把上面三個設定全部做好,還有一些風險是這篇教學無法幫你消除的,寫在這裡是為了讓你有正確的預期:

第一,交易所本身被駭這件事沒有 API key 層級的防禦可以擋——你的資產放在 Bybit 上,就是承擔 Bybit 這個平台的營運風險。這一層要靠交易所的 Proof of Reserves、保險基金、以及你自己分散持有到多家平台或冷錢包來處理,跟 key 怎麼設定無關。

第二,你自己的策略把錢虧掉,跟 API key 安全無關。這篇沒有討論任何策略層面的風險。即使是最保守的 grid bot、資費套利,遇到極端行情都會虧損。策略層面的風險評估請看Kelly 公式與部位大小ATR 波動率動態調整部位兩篇。

第三,我們沒能對 Bybit 做完整的內部制度審計。本文所有關於 Bybit 官方規則的敘述都是根據可公開查證的 V5 API 文件與 help center 整理出來的,查證日期 2026 年 8 月。交易所政策會在沒有太多預告的情況下變動,實際設定前建議自己再去 Bybit 官方 API 文件頁面確認一次現行規則。

被 Bybit 拒接的兩個環境限制
Bybit 官方 V5 文件的 Integration Guidance 章節寫著「IP addresses located in the US or Mainland China are restricted and will return a 403 Forbidden error」——你機器人所在的 VPS 如果在這兩個區域,連 API 都連不上,這件事不是 key 設定能救的。另外新註冊帳號的前 48 小時也建不了 API key。

常見問題

Bybit 的 API 為什麼不需要 Passphrase?跟 Bitget、OKX 有什麼差別?

Bybit 官方 V5 API 的認證只需要兩把 key:ACCESS-KEY(API Key)加上用 Secret Key 算出來的 X-BAPI-SIGN。Bitget 跟 OKX 多了第三把 Passphrase 是那兩家的設計選擇,Bybit 沒有走這條路。

實務意義是你少一件事要藏,但也少一層保護——只要兩把外洩,攻擊者就能算出簽章。Secret 的保存要更嚴,不要塞進任何純文字檔或聊天視窗。

我一定要用 sub-account 建 key 嗎?直接用主帳號建不行嗎?

技術上可以,官方沒有強制。但如果你機器人管理的資金超過你可以承受一次歸零的金額,用子帳戶隔離就值得做。

Bybit 官方 V5 API 文件明講子帳戶的 Wallet 權限「["AccountTransfer","SubMemberTransferList"]」沒有 Withdraw 這個選項,等於架構上就把提幣路徑鎖死了。這是 Binance/Bitget 都要靠「你記得不勾」達成的效果,Bybit 直接寫死。

Bybit 的 key 會自動到期嗎?我要多久換一次?

Bybit 官方 V5 API 文件明文:「No ip bound api key will be invalid after 90 days」——沒綁 IP 的 key 90 天後失效。

還有一條:「api key without IP bound will be invalid after 7 days once the account password is changed」——改過密碼後 7 天再失效一次。綁了 IP 的 key 不受這條約束,會一直活著

建議把「每 6 個月主動輪替一次」寫進你自己的排程——不管交易所會不會幫你做,你自己做。

System-generated 跟 Auto-generated 兩種 key 怎麼選?

System-generated 是 Bybit 幫你產一對 HMAC key,就是常見的 API Key + Secret 兩把字串,多數工具都支援。

Auto-generated 是你自己用 bybit 官方 api-rsa-generator 產一對 RSA 公私鑰,把公鑰傳給 Bybit,私鑰不離開你的機器。RSA 這條的優勢是「Bybit never holds your private key」,就算 Bybit 側資料外洩你的 secret 也不會漏;缺點是下游工具得支援 RSA_SHA256 簽章。

新手直接選 System-generated;懂 RSA 又用得慣的老手選 Auto-generated 會更安全

Bybit key 外洩之後,我第一時間要做什麼?

第一步是立刻進 Bybit 的 API Management 頁把該 key 刪除——這件事優先於任何其他動作,因為 key 存活的每一分鐘都是損失的機會。

刪掉之後檢查近期訂單紀錄與提幣紀錄(提幣紀錄尤其重要,如果你之前不小心開了 Withdraw 權限)。發現可疑提幣立刻聯絡 Bybit 客服。

最後:建新 key 時記得檢討這次為什麼會外洩——是電腦中毒、SaaS 被駭、還是自己 push 到公開 repo——不修根本原因,換新 key 只是把時間往後拖。

跟 Binance API key 設定教學相比,這篇差在哪裡?

四個關鍵差異——第一,Bybit 的子帳戶 key 不能勾 Withdraw(官方 V5 文件寫死),Binance 則是能勾、要你自己記得不勾。

第二,Bybit 沒綁 IP 的 key 90 天失效,Binance 是 30 天。第三,Bybit 支援 RSA 非對稱簽章作為進階選項。第四,Bybit UTA 的一把 key 可以同時跑 Spot、Contract、Options,Binance 那邊還是分開的 API endpoint。

核心「不要勾 Withdraw、要綁 IP」的邏輯兩家一樣。想看 Binance 專屬的完整流程,可以看Binance API Key 安全設定完整教學

Get started

想把今天學到的東西自動化跑起來?

把 TradingView 訊號接到 Bybit 自動下單——TVSBot 非託管、用你自己的 API key、dashboard 顯示要填進 Bybit 白名單的後端 IP、下單前 dry-run、帳戶層級可設風控。

免費開始使用