Ubuntu 升级到新的 LTS 是否会更改 SSH 主机密钥

Ubuntu 升级到新的 LTS 是否会更改 SSH 主机密钥

我最近将我的电脑从 ubuntu 12.04 升级到了 14.04 LTS(一步到位)。然而,升级后,我收到了一些众所周知的警告,比如

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for xxxx has changed,

,如果我尝试从另一台 Linux 计算机通过 ssh 进入该计算机。

如果我尝试从 MinGW/Windows 登录计算机,而主机/服务器已存储其公钥,则登录成功几秒钟,然后 ssh 会话冻结。主机/服务器的网络大约会中断几个小时到一天,在此期间我甚至无法 ping 通服务器。但此后它又恢复了在线状态。

我的问题是:像我这样的 LTS 升级会更改主机密钥,这有可能/正常吗?或者更有可能是我的计算机受到了中间人攻击。我如何验证是哪种情况?

谢谢。

- 更新 -

为了尝试修复该问题,我使用 fsarchive 和第二个 Ubuntu 安装恢复了升级到 14.04 之前制作的 Ubuntu 12.04 映像。我之前多次恢复过,从未遇到过问题。但这次,恢复后,恢复的 Ubuntu 12.04 无法启动。我只剩下 grub 提示符。

然后,修复 grub,我使用 liveusb 重新安装 grub(chroot、grub-install /dev/sda 等)。同样,以前每次都能修复 grub,但这次不行。grub-install 报告了一些有关使用扇区 32 的“FlexNet”的错误。

在谷歌搜索后,我终于修复了 grub,并找到了两行命令来备份和清除 MBR。我不知道以前是否有人遇到过类似的问题。我从未在 Windows 双启动或 Linux 上安装过任何名为 FlexNet 的软件。而且只有在我升级到 14.04 LTS 后才发生这种情况。这是我的电脑被黑客入侵的迹象吗?

修复 grub 之后,我可以再次升级到 14.04 LTS,到目前为止没有任何问题。

答案1

FlexNet 是一款反盗版软件许可证管理器软件。它在扇区 32 中嵌入了一些签名,作为一个简单的检查,以防止人们复制它(因为盗版者永远不会弄清楚如何复制磁盘扇区)。由于它嵌入在驱动器头中,因此 FlexNet 签名将在重新分区等情况下继续存在。可能有人之前在驱动器上安装了该软件,也许它曾经安装过 Windows?

要清空 FlexNet 扇区:

sudo dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=32

关于 ssh 问题,请参见这个答案处于类似情况的用户发现升级在 sshd conf 中添加了一行:

HostKey /etc/ssh/ssh_host_ecdsa_key

同样的情况可能发生在您身上 - 您的服务器正在使用 RSA/DSA 密钥,配置中没有声明 ECDSA 密钥(即使磁盘上存在密钥),但是当您升级服务器配置时会发生更改,现在 ssh 正在抱怨。

答案2

由于您似乎可以物理访问该机器,因此让它告诉您它的指纹是什么:

  • you@SuspiciousMachine $ sudo ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key

将其与您的 Linux 机器报告的内容进行比较并确定真实性。

笔记: 确保打印的是正确的密钥。就你的情况而言,你需要 ecdsa。有时,这可能是 rsa。

相关内容