Skip to content

密鑰環 Keyring

使用 CLI 密鑰環創建、導入、導出和刪除密鑰。

密鑰環保存用於與節點交互的私鑰/公鑰對。例如,在運行節點之前需要設置一個驗證器密鑰,這樣才能正確地對塊進行簽名。私鑰可以存儲在不同的位置,稱為"backends",例如文件或操作系統自己的密鑰存儲。

📣 提示: 如果您需要復習私鑰和密鑰管理,請參考我們的密鑰管理

添加密鑰

您可以使用以下命令來獲取keys命令的幫助以及有關特定子命令的更多信息, 分別:

stcd keys
stcd keys [command] --help

要在密鑰環中創建新密鑰,請運行帶有 <key_name> 參數的 add 子命令。您將必須提供密碼 對於新生成的密鑰。這個密鑰將在下一節中使用。

stcd keys add dev0

# Put the generated address in a variable for later use.
MY_VALIDATOR_ADDRESS=$(stcd keys show dev0 -a)

此命令生成一個新的 24 字助記詞,並將其持久化到相關後端,並輸出有關密鑰對的信息。如果這個密鑰對將被用來保存有價值的代幣,一定要把助記詞寫在安全的地方!

默認情況下,密鑰環生成一個eth_secp256k1密鑰。密鑰環還支持ed25519密鑰,可以通過傳遞--algo標誌來創建。鑰匙圈當然可以同時持有這兩種類型的鑰匙。

📣 提示:與公鑰關聯的以太坊地址可以通過獲取eth_secp256k1類型的完整以太坊公鑰、計算Keccak-256哈希並截斷前十二個字節來導出。

🚨 危險:由於與以太坊交易的兼容性問題,Daodst 不支持 Cosmos secp256k1 密鑰。

密鑰環後端

OS

📣 提示: os 是默認選項,因為操作系統的默認憑據管理器旨在滿足用戶最常見的需求,並在不影響安全性的情況下為他們提供舒適的體驗。

os 後端依賴操作系統特定的默認值來安全地處理密鑰存儲。通常,操作系統的憑證子系統根據用戶的密碼策略處理密碼提示、私鑰存儲和用戶會話。以下是最流行的操作系統及其各自的密碼管理器的列表:

使用 GNOME 作為默認桌面環境的 GNU/Linux 發行版通常帶有 Seahorse。 基於 KDE 的發行版的用戶通常會獲得 KDE 錢包管理器。 前者實際上是一個方便的 libsecret 前端,而後者是一個 kwallet 客戶端。

無頭環境的推薦後端是 filepass

File

file 將加密的密鑰環存儲在應用程序的配置目錄中。每次訪問此密鑰環時都會請求密碼,這可能會在單個命令中多次出現,從而導致重複的密碼提示。如果使用 bash 腳本通過 file 選項執行命令,您可能希望對多個提示使用以下格式:

# assuming that KEYPASSWD is set in the environment
yes $KEYPASSWD | stcd keys add me
yes $KEYPASSWD | stcd keys show me
# start stcd with keyring-backend flag
stcd --keyring-backend=file start

📣 提示:第一次將密鑰添加到空密鑰環時,系統將提示您輸入密碼兩次。

Pass

pass 後端使用 pass 實用程序來管理密鑰的敏感數據和元數據的磁盤加密。密鑰存儲在特定於應用程序的目錄中的“gpg”加密文件中。 pass 適用於最流行的 UNIX 操作系統以及 GNU/Linux 發行版。有關如何下載和安裝它的信息,請參閱其手冊頁。

📣 提示:pass 使用 GnuPG 進行加密。 gpg 在執行時自動調用 gpg-agent 守護進程,它處理 GnuPG 憑證的緩存。有關如何配置緩存參數(例如憑據 TTL 和密碼過期時間)的更多信息,請參閱 gpg-agent 手冊頁。

必須在首次使用之前設置密碼存儲:

pass init <GPG_KEY_ID>

<GPG_KEY_ID> 替換為您的 GPG 密鑰 ID。您可以使用您的個人 GPG 密鑰或您可能想專門用來加密密碼存儲的替代密鑰。

Kwallet

kwallet 後端使用 KDE Wallet Manager,它默認安裝在以 KDE 作為默認桌面環境的 GNU/Linux 發行版上。更多請參考KWallet手冊信息。

Testing

test 後端是 file 後端的無密碼變體。密鑰以未加密的形式存儲在磁盤上。此密鑰環僅用於測試目的。使用風險自負!

🚨 危險永遠不要使用 test 鍵控後端創建您的主網驗證器密鑰。這樣做可能會導致 通過eth_sendTransactionJSON-RPC 端點遠程訪問您的資金,從而造成資金損失。

Memory

memory 後端將密鑰存儲在內存中。程序退出後,密鑰將立即刪除。

🚨 危險:僅供測試之用。 memory 後端推薦用於生產環境。使用風險自負!