当我尝试从我的英国笔记本电脑通过 ssh 连接到我在德国的服务器时,我得到以下信息:
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
.....
我从 ~/.ssh/known_hosts 中删除了相应的行,然后再次 ssh。在服务器上(通过 ssh 终端),我执行:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
然后从我的笔记本电脑上执行:
ssh-keyscan -p 22 -t rsa my_domain_or_ip.com > /tmp/ssh_host_rsa_key.pub
ssh-keygen -l -f /tmp/ssh_host_rsa_key.pub
当我比较结果时,我发现指纹是不同的!证书的长度也不同(服务器上是 2048,但远程扫描显示为 1024)。DSA 指纹也不同。
问题可能不在我的本地网络中,因为对服务器 IP 的 arping 返回 0 个结果。我请波兰的一位朋友为我执行了相同的命令,他得到了相同的结果。
对于正在发生的事情有什么想法吗?
编辑:当我 ssh 到服务器并执行以下操作时:
ssh-keyscan -p 22 -t rsa 127.0.0.1 > /tmp/ssh_localhost_rsa_key.pub
ssh-keygen -l -f /tmp/ssh_localhost_rsa_key.pub
然后我发现指纹仍然不同!然后当我在服务器上执行:
argping -c 5 server_ip
我收到 0 个回复。
这很奇怪!
编辑2(摘要):
username@server:~$ ssh-keyscan -p 22 127.0.0.1 > /tmp/rsa.tmp
# 127.0.0.1 SSH-1.99-OpenSSH_33.33
username@server:~$ ssh-keygen -lf /tmp/rsa.tmp
1024 12:................................. 127.0.0.1 (RSA)
username@server:~$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 32:................................. /etc/ssh/ssh_host_rsa_key.pub (RSA)
答案1
缓存键的改变可以通过以下几个原因来解释:
- 您实际上受到了位于您和您的服务器之间并拦截您的会话的某人的攻击。
- 您的服务器 IP 已映射到多台真实服务器,并且您最近已切换到另一台机器。当您通过 SSH 连接到可在两台服务器之间切换的 VIP 时,可能会发生这种情况。
- 您的服务器系统最近重新安装,从而更改了 SSH 密钥。
您应该能够判断这是否正常。
答案2
问题是有人利用服务器上运行的一个或多个服务的漏洞攻击了我的服务器。不幸的是,解决办法是重新安装整个系统(我担心有人可能留下了一些后门)。
我也关注了这次的 Linux 安全提示。