HostKey /etc/ssh/ssh_host_ecdsa_key
我注意到我开始尝试连接到盒子时遇到了很多相似但不同的错误,例如:
“%hostname%的RSA主机密钥已更改,
和相应IP地址的密钥%ipaddress%
不变.“
我认为这是因为我的计算机以前默认使用ECDSA密钥,现在不可用.所以我将该行添加回sshd_config并重新启动SSH.
它没有完全解决这个问题,从那时起我就遇到了不断的问题.我将能够连接好几次连接到服务器,甚至可能连续几天.然后突然间,我开始收到主机密钥已更改的错误,服务器停止接受我的公钥进行身份验证.
似乎一旦我把它弄乱了一段时间并从不同的位置连接,我将突然能够再次连接我的公钥,我不再得到关于可能的中间人的错误攻击.
我几天前尝试重新生成所有3个主机密钥(删除它们并运行dpkg-reconfigure openssh-server,重新生成它们).正如所料,我必须删除旧密钥并接受新密钥才能连接.我想也许它已经修好了,但问题现在又回来了.
什么都没有修改/ etc / ssh /中的任何主机密钥,因为我最后重新生成它们 – 所以什么可能导致我经常无法连接,让我的公钥不起作用,然后最终接受新密钥并且有事情开始恢复正常一段时间?
当事情不起作用时(当我收到有关主机密钥更改的错误,然后服务器停止接受我的公钥时),没有任何内容写入服务器的/var/log/auth.log.这让我觉得有时它可能会以某种方式撞到不同的机器,但我不知道这样做是可能的,因为DNS条目是正确的并且总是返回相同的IP地址.
按概率粗略排列,它们是:
>您自己更改了主机密钥,但未在客户端计算机上清除或更新它们.
这是最常见的情况.校验和关键文件,绝对是他们没有改变.
>您已更改SSH配置以呈现(或请求)与以前不同的密钥类型.
例如你以前想要RSA或DSA密钥,现在你使用ECDSA – 这是一个“关键变化”.
如果是这种情况,请验证并接受新密钥(如果这不是您想要的,请撤消更改).
(听起来你处于情况#2 – 撤消你的更改,重新启动sshd,并验证事情是否按预期工作.如果你没有接受新密钥,撤消更改应该会使错误消失.)
>有人做了一些东西
中间人攻击SSH警告你已经养成了丑陋的头脑.有人正在积极尝试拦截您的通信以窃取您的私钥或做其他事情,您几乎肯定不希望他们这样做.
如果你已经淘汰1,并且你确定你没有做2,那么你应该假设3,直到你能证明不是这样.这意味着不要登录. – 当用户忽略巨大的巨型警告横幅并将其密钥交给攻击者时,世界上所有的SSH安全性都无济于事.
调查您和您的服务器之间的通道,在您尝试登录时检查服务器的连接日志(来自已知良好的终端)等等 – 这里有很多方法可以执行攻击,我无法枚举所有可能的对策和检测策略,但在IT Security的人肯定会有一些想法.