為 Fuchsia 裝置建立 SSH 金鑰

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

概念

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

初始化 Fuchsia 裝置的指令 (例如 ffx target flashffx emu start) 會在找不到 SSH 金鑰時產生金鑰。安全殼層金鑰檔案的位置是使用 ffx config set ssh.pubffx config set ssh.priv 設定。

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

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

您可以執行 ffx config check-ssh-keys 檢查安全殼層金鑰的設定和一致性,如果缺少金鑰,系統也會產生金鑰,或更新公開金鑰檔案,加入與私密金鑰相符的公開金鑰 (如果缺少)。

這些檔案包含下列內容:

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

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

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

疑難排解

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