为 Fuchsia 设备创建 SSH 密钥

如需与 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 密钥文件从一台机器复制到另一台机器。