為 Fuchsia 裝置建立 SSH 金鑰

如要與 Fuchsia 裝置建立 SSH 連線,某些 ffx 指令 (例如 ffx target showffx log) 需要在主機機器上提供 Fuchsia 專用的安全殼層金鑰。

概念

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

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

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

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

您可以執行 ffx config check-ssh-keys 來檢查設定檔和包含 SSH 金鑰的組成,如此也會產生缺少的金鑰。或者,如果缺少與私密金鑰相符的公開金鑰,則可更新公開金鑰檔案,以納入與這些金鑰相符的公開金鑰。

這些檔案包含以下內容:

  • fuchsia_ed25519:私密安全殼層金鑰。不得揭露或共用這個檔案的內容。
  • fuchsia_authorized_keys:一或多個已授權公開安全殼層金鑰的清單。

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

如果您有多部開發機器,建議您讓 Fuchsia 安全殼層金鑰在各開發機器間同步處理。這可能需要您將現有 Fuchsia 安全殼層金鑰檔案從一部電腦複製到另一部電腦。