答案1
我自己找到了解决方案:
正在使用的 sshd 配置位于 下/mnt/stateful_partition/etc/ssh/
,而不是 下/etc/ssh/
。
因此ssh-keygen -lf /mnt/stateful_partition/etc/ssh/ssh_host_ed25519_key.pub
给出了正确的指纹。
答案2
这可能意味着你以某种方式“克隆”了你的虚拟机,它的真实指纹已经改变,但旧指纹仍然在你生成的 ssk 密钥中。这是此类问题最典型的原因 -在 ServerFault 上对此进行了讨论。
为您的服务器生成新的 ssh 密钥,它应该与您尝试连接时获取的密钥相同。
您还可以从这些主题中获得更多想法:
答案3
要连接 Linux VM 实例,您需要自己的 SSH 密钥,它由唯一的 SSH 私钥文件和匹配的 SSH 公钥文件组成。
由于您通过命令行 ssh-keygen 生成 ssh-key,因此必须使用以下选项之一向实例提供公共 SSH 密钥:
- 使用操作系统登录,它允许您保持一致的 Linux 用户身份,并避免跨 VM 实例提供和管理 SSH 密钥。
- 使用 IAM 角色管理实例访问,它允许您通过您的 Google 帐户或托管用户帐户向实例提供您的公共 SSH 密钥。
- 将 SSH 密钥添加到元数据针对项目或者特定实例。
- 让另一个用户在实例上为您手动配置您的 SSH 公钥。
将 SSH 公钥应用到要连接的实例后,您可以使用 SSH 私钥来访问该实例。
就你的情况而言,似乎需要在 GCP 元数据 (SSH 密钥) 中添加公共 SSH 密钥。你可以在此处找到有关添加或删除项目范围公共 SSH 密钥的更多详细信息关联