如要透過 SSH 連線至 Fuchsia 裝置,部分 ffx 指令 (例如 ffx target show 和 ffx log) 需要主體機器上存在 Fuchsia 專屬的 SSH 金鑰。
概念
開發期間,系統會將一或多個公開 SSH 金鑰 (列於 fuchsia_authorized_keys) 載入 Fuchsia 裝置,通常是在將新的 Fuchsia 映像檔刷入裝置時。裝置載入這些公開安全殼層金鑰後,ffx 指令 (從儲存相符私密安全殼層金鑰的主機執行) 即可與裝置建立安全殼層連線。
根據預設,Fuchsia 專屬的 SSH 金鑰會儲存在主體機器的 $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 --create如果缺少金鑰,這個指令會產生金鑰;如果缺少與私密金鑰相符的公開金鑰,這個指令會更新公開金鑰檔案,加入相符的公開金鑰。
此外,初始化 Fuchsia 裝置的指令 (例如 ffx target
flash 和 ffx emu start) 會在找不到 SSH 金鑰時產生金鑰。您可以使用 ffx config set ssh.pub 和 ffx config set ssh.priv 設定 SSH 金鑰檔案的位置。
疑難排解
如果安全殼層連線發生問題,ffx 會提供工具,協助您驗證安全殼層金鑰。詳情請參閱「排解 Fuchsia 裝置的 SSH 金鑰問題」。