rpc cookie 身份驗證
我在啟動 bitcoind 時收到一條消息:
Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcuser for rpcauth auth generation
什麼是基於 cookie 的身份驗證,我該如何使用它?
謝謝
當沒有提供 rpc 密碼時,使用基於 Cookie 的身份驗證。Bitcoin Core 0.12 版本對此有以下說法:
當未指定 -rpcpassword 時,守護程序現在使用特殊的“cookie”文件進行身份驗證。此文件在守護程序啟動時生成隨機內容,並在其退出時刪除。其內容用作身份驗證令牌。對該文件的讀取權限控制誰可以通過 RPC 訪問。預設情況下,它儲存在數據目錄中,但可以使用選項 -rpccookiefile 覆蓋其位置。
這類似於 Tor 的 CookieAuthentication:參見 <https://www.torproject.org/docs/tor-manual.html.en>
這允許執行 bitcoind 而無需進行任何手動配置。
如果您使用的只是
bitcoin-cli
不需要 RPC 使用者/密碼的東西,您可能應該只註釋掉或刪除並rpcuser=XXX
重新啟動比特幣。它“應該只是工作 [tm]”。rpcpassword=YYY``bitcoin.conf
如果您需要指定的 rpc 使用者/密碼組合,則需要切換到 using
rpcauth
而不是rpcuser
/rpcpassword
。被
rpcauth
描述為JSON-RPC 連接的使用者名和雜湊密碼。該欄位採用以下格式:
<USERNAME>:<SALT>$<HASH>
. 一個規範的 python 腳本包含在 share/rpcuser 中。該選項可以指定多次在
share/rpcuser
(在 github 上)有一個 Python 腳本,可讓您創建這樣的使用者/密碼組合(請注意,您已獲得密碼,您無需自己指定)。抓住那個 python 腳本,然後執行它。例如
$ python ./rpcuser.py foo String to be appended to bitcoin.conf: rpcauth=foo:a14191e6892facf70686a397b126423$ddd6f7480817bd6f8083a2e07e24b93c4d74e667f3a001df26c5dd0ef5eafd0d Your password: VX3z87LBVc_X7NBLABLABLABLA
然後
rpcuser
用foo
和rpcpassword
替換VX3z87LBVc_X7NBLABLABLABLA
你連接到 bitcoind RPC 的任何地方。