为什么在我第一次登录之前,我的新 Ubuntu 20.04.1 实例上就安装了 SSH 公钥?我被黑客入侵了吗?

为什么在我第一次登录之前,我的新 Ubuntu 20.04.1 实例上就安装了 SSH 公钥?我被黑客入侵了吗?

我之前购买/配置了一台新的 Raspberry Pi 4 来运行 Ubuntu 20.04.1 和 Apache。我将 AT&T 调制解调器上的端口 80 转发到 Raspberry Pi,并托管了一些网站,没有任何问题。

我收到了新的今天我使用 Raspberry Pi 首次启动了 Ubuntu 20.04.1 的新实例。Ubuntu 进入登录屏幕,当我在笔记本电脑上设置通过 SSH 登录时,我的 Raspberry Pi 突然在终端上出现了一大堆输出。

我认识到它是与公钥相对应的东西,因为我计划添加我自己的用于 SSH 登录的公钥。这对我来说似乎有点可疑,因为我不记得在设置原始 Raspberry Pi 时发生过这种情况。我从调制解调器中删除了端口转发,同时清除了 SD 卡并重新启动 Ubuntu,但同样的问题仍然出现。我的 Raspberry Pi 被黑客入侵了吗?在我第一次登录之前,是否有一些外部实体将他们自己的 SSH 密钥添加到 Ubuntu?

答案1

您可以使用cloud-init它来填充 SSH 授权密钥。但是,消息明确指出:

ci-info: no authorized SSH key fingerprints found for user ubuntu

显示的指纹用于主持人系统向客户端呈现的密钥。

答案2

链接图片中的键是主持人密钥。这些不是您的私人登录密钥。

如果我们使用 SSL 条款主机密钥有点像 Web 服务器中的 SSL 密钥。它是私有的,也是必需的,但它不建议在主机之间共享它们,因此第一次启动时会在主机上生成一个,该密钥应该是主机独有的。同时还会生成一个相应的公钥,这就是您在那里看到的指纹。

SSH 支持多种不同的密钥格式 - 这就是为什么有 ECDSA、ED25519、RSA、DSA。如果您只打算使用现代 SSH 客户端访问它,您可以在 /etc/ssh/ssh_config 中禁用 RSA 和 DSA,然后删除这些密钥。

当您首次连接到 SSH 服务器时,它会将公钥发送到您的客户端。客户端将从提供的公钥中选择它支持(并配置为允许)的最安全的公钥。然后,它将显示所选公钥的指纹。请随时保存您的图像,您可以验证这是否是客户端向您显示的指纹。系统会要求您验证这是否确实是主机的指纹。指纹缓存在 known_hosts 文件中,因此下次无需与您确认。这基本上相当于您的 Web 浏览器对照 CA 颁发的证书进行检查并显示挂锁。

此后,它将继续为每个新会话选择该特定公钥,并将根据其缓存测试指纹。除非指纹发生变化,否则不会再次提示您。如果指纹发生变化,则会提示您。

再次强调,这一切都与您的登录密钥无关。没有您的密码,其他人都无法登录。在将您的公共登录密钥放入 authorized_keys 文件中之前,您仍然需要密码才能登录。

相关内容