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