為 Fuchsia 裝置建立 SSH 金鑰

如要透過 SSH 連線至 Fuchsia 裝置,部分 ffx 指令 (例如 ffx target showffx log) 需要主機上存在 Fuchsia 專屬的 SSH 金鑰。

概念

開發期間,系統會將一或多個公開 SSH 金鑰 (列於 fuchsia_authorized_keys 中) 載入 Fuchsia 裝置,通常是在將新的 Fuchsia 映像檔刷入裝置時。裝置載入這些公開安全殼層金鑰後,ffx 指令 (從儲存相符私密安全殼層金鑰的主機執行) 就能與裝置建立安全殼層連線。

根據預設,Fuchsia 專屬的安全殼層金鑰會儲存在主機的 $HOME/.ssh 目錄中,如下所示:

$HOME/.ssh/fuchsia_ed25519
$HOME/.ssh/fuchsia_authorized_keys

這些檔案包含下列內容:

  • fuchsia_ed25519:私密安全殼層金鑰。請勿揭露或分享這個檔案的內容。
  • fuchsia_authorized_keys:一或多個授權公開安全殼層金鑰的清單。

fuchsia_authorized_keys 檔案必須包含 fuchsia_ed25519 的公開安全殼層金鑰。在刷機過程中,fuchsia_authorized_keys 檔案會從主機上傳至 Fuchsia 裝置。

如果您有多部開發機器,建議在這些機器之間同步處理 Fuchsia SSH 金鑰。這可能需要您將現有的 Fuchsia SSH 金鑰檔案從一部機器複製到另一部機器。

建立金鑰

如要檢查 SSH 金鑰的設定,請執行下列指令:

ffx config check-ssh-keys

如果金鑰遺失,這個指令會產生金鑰;如果公開金鑰遺失,這個指令會更新公開金鑰檔案,加入與私密金鑰相符的公開金鑰。

此外,初始化 Fuchsia 裝置的指令 (例如 ffx target flashffx emu start) 會在找不到 SSH 金鑰時產生金鑰。您可以使用 ffx config set ssh.pubffx config set ssh.priv 設定 SSH 金鑰檔案的位置。

疑難排解

如果安全殼層連線發生問題,ffx 提供工具協助您驗證安全殼層金鑰。詳情請參閱「排解 Fuchsia 裝置的 SSH 金鑰問題」。