我最近将我的计算机从 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 报告一些关于“FlexNet”使用扇区 32 的错误。
谷歌搜索后,我终于修复了 grub,找到两行命令来备份和清除 MBR。不知道以前有没有人遇到过类似的问题。我从未在 Windows 双启动或 Linux 上安装任何名为 FlexNet 的软件。它发生在我升级到 14.04 LTS 之后。这是我的电脑被黑客入侵的迹象吗?
修复 grub 后,我可以再次升级到 14.04 LTS,到目前为止没有任何问题。
FlexNet 是一款反盗版软件许可证管理软件。它在扇区 32 中嵌入了一些签名作为简单的检查以防止人们复制它(因为盗版者永远不知道如何复制磁盘扇区)。因为它嵌入在驱动器标头中,FlexNet 签名将在重新分区等情况下继续存在。可能有人以前在驱动器上安装了该软件,也许它曾经安装过 Windows?
要清空 FlexNet 扇区:
关于 ssh 问题,请参阅此答案,其中有类似情况的用户发现升级后在 sshd conf 中添加了一行:
有可能同样的事情发生在你身上——你的服务器使用的是 RSA/DSA 密钥,配置中没有声明 ECDSA 密钥(即使磁盘上确实存在),但是当你升级服务器配置时,它被更改了,现在ssh 在抱怨。
由于您似乎可以物理访问相关机器,让它告诉您它的指纹是什么:
you@SuspiciousMachine $ sudo ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key
将其与您的 Linux 机器报告的内容进行比较并确定真实性。
注意: 确保您正在打印正确的密钥。在你的情况下,你想要 ecdsa。有时,这可能是 rsa。