如要透過 SSH 連線至 Fuchsia 裝置,部分 ffx 指令 (例如 ffx target show 和 ffx log) 需要主機上存在 Fuchsia 專屬的 SSH 金鑰。
概念
開發期間,系統會將一或多個公開 SSH 金鑰 (列於 fuchsia_authorized_keys 中) 載入 Fuchsia 裝置,通常是在將新的 Fuchsia 映像檔刷入裝置時。裝置載入這些公開安全殼層金鑰後,ffx 指令 (從儲存相符私密安全殼層金鑰的主機執行) 就能與裝置建立安全殼層連線。
初始化 Fuchsia 裝置的指令 (例如 ffx target flash 和 ffx
emu start) 會在找不到 SSH 金鑰時產生金鑰。安全殼層金鑰檔案的位置是使用 ffx config set ssh.pub 和 ffx 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 金鑰問題」。