如需通过 SSH 连接到 Fuchsia 设备,某些 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 配置 SSH 密钥文件的位置。
默认情况下,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 密钥文件从一台机器复制到另一台机器。
问题排查
如果您在 SSH 连接方面遇到问题,ffx 会提供一些工具来帮助您验证 SSH 密钥。如需了解详情,请参阅排查 Fuchsia 设备的 SSH 密钥问题。