如需与 Fuchsia 设备建立 SSH 连接,某些 ffx
命令(例如 ffx target show
和 ffx log
)要求主机上具有 Fuchsia 专用 SSH 密钥。
概念
在开发期间,系统会将一个或多个 SSH 公钥(列在 fuchsia_authorized_keys
中)加载到 Fuchsia 设备上,通常是在新的 Fuchsia 映像刷写到设备时。使用这些 SSH 公钥加载设备后,ffx
命令(从存储匹配的 SSH 私钥的主机运行)可以建立与设备的 SSH 连接。
如果找不到用于初始化 Fuchsia 设备的命令(例如 ffx target flash
和 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
您可以通过运行 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 密钥文件从一台机器复制到另一台机器。