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