为 Fuchsia 设备创建 SSH 密钥

如需与 Fuchsia 设备建立 SSH 连接,可使用一些 ffx 命令。 (例如 ffx target showffx log) 要求宿主机上提供 Fuchsia 专用的 SSH 密钥。

概念

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

用于初始化 Fuchsia 设备的命令,例如 ffx target flash 如果找不到 SSH 密钥,ffx emu start 将生成 SSH 密钥。 SSH 密钥文件的位置是使用 ffx config set ssh.pub 配置的 和 ffx config set ssh.priv

默认情况下,特定于 Fuchsia 的 SSH 密钥存储在 $HOME/.ssh 目录,如下所示:

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

您可以运行以下命令来检查 SSH 密钥的配置和一致性 ffx config check-ssh-keys,这也会在缺少密钥时生成密钥, 或更新公钥文件,以包含与私钥匹配的公钥 。

这些文件包含以下内容:

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

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

如果您有多台开发机器, 建议在各设备间同步 Fuchsia SSH 密钥 自己的开发机器您可能需要将现有的 Fuchsia SSH 密钥文件从一台机器到另一台机器。