如果您在使用 ffx 命令时遇到无法与 Fuchsia 设备建立 SSH 连接的问题,本指南可帮助您诊断和解决常见的 SSH 密钥问题。
概念
通过 SSH 连接到 Fuchsia 设备时,常见的问题是主机上的 SSH 密钥与设备上的授权密钥不匹配。为了帮助您完成此操作,ffx 提供了一些工具来验证您的 SSH 密钥。出于安全考虑,此功能仅在 eng 和 userdebug build 上可用。
ffx verify-ssh-keys 工具用于检查密钥是否不一致。此检查还集成到 ffx doctor 中,以便进行更全面的问题排查。
检测到不一致时,您可能需要更新设备上的密钥,或确保宿主机具有正确的密钥。如需了解如何创建和管理 SSH 密钥,请参阅为 Fuchsia 设备创建 SSH 密钥。
手动验证 SSH 密钥
如需手动检查本地公钥是否与设备所需的公钥(包含在 authorized_keys 文件中)之一匹配,请运行以下命令:
ffx verify-ssh-keys如果您的密钥设置正确,该命令将静默退出。
如果存在不匹配的情况,您会看到一条错误消息,指出设备上的公钥与本地私钥不匹配。
使用 ffx doctor 进行自动验证
ffx doctor 命令会运行一系列检查来诊断开发设置方面的问题,包括 SSH 密钥验证。
如需运行 ffx doctor,请使用以下命令:
ffx doctor如果 ffx doctor 发现 SSH 密钥存在问题,会将其与其他潜在问题一起报告。
解决 SSH 密钥问题
如果 ffx verify-ssh-keys 或 ffx doctor 报告 SSH 密钥不匹配,请按以下步骤操作:
检查密钥配置:
私钥:
ffx config get ssh.priv公钥:
ffx config get ssh.pub
这会显示
ffx在哪里查找您的 SSH 密钥。确保这些位置正确无误。确保密钥存在:如果配置的路径中缺少密钥,您可以使用以下命令生成密钥:
ffx config check-ssh-keys如果密钥不存在,此命令将生成新密钥;如果公钥文件缺少与您的私钥对应的公钥,此命令将更新该文件。
更新设备上的密钥:如果您有多台开发机器或重新生成了密钥,设备可能有一组旧的授权密钥。您可能需要重新刷写设备或更新设备上的
fuchsia_authorized_keys。如需了解详情,请参阅为 Fuchsia 设备创建 SSH 密钥。