为 Fuchsia 设备创建 SSH 密钥

robots:noindex

如需与 Fuchsia 设备建立 SSH 连接,某些 ffx 命令(例如 ffx target showffx log)要求主机上具有 Fuchsia 专用的 SSH 密钥。

概念

在开发期间,一个或多个 SSH 公钥(列在 fuchsia_authorized_keys 中)会加载到 Fuchsia 设备,通常是在将新的 Fuchsia 映像刷写到设备时加载。将这些 SSH 公钥加载到设备后,ffx 命令(从存储匹配 SSH 私钥的主机上运行)可以与设备建立 SSH 连接。

如果找不到用于初始化 Fuchsia 设备的命令(如 ffx target flashffx emu start),它们将生成 SSH 密钥。SSH 密钥文件的位置使用 ffx config set ssh.pubffx config set ssh.priv 进行配置。

默认情况下,Fuchsia 专用 SSH 密钥存储在主机的 $HOME/.ssh 目录中,如下所示:

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

您可以通过运行 ffx config check-ssh-keys 来检查 SSH 密钥的配置和一致性,该命令还会在缺少密钥时生成密钥,或者更新公钥文件以包含与私钥匹配的公钥(如果缺少)。

这些文件包含以下内容:

  • fuchsia_ed25519:SSH 私钥。不得披露或分享此文件的内容。
  • fuchsia_authorized_keys:一个或多个已获授权的 SSH 公钥的列表。

fuchsia_authorized_keys 文件必须包含 fuchsia_ed25519 的 SSH 公钥。在刷写过程中,fuchsia_authorized_keys 文件会从宿主机上传到 Fuchsia 设备。

如果您有多台开发机器,建议您在开发机器之间同步 Fuchsia SSH 密钥。这可能需要您将现有的 Fuchsia SSH 密钥文件从一台机器复制到另一台机器。