我通常使用服务器上的 SSH 工作,然后断开连接并使用不同的密钥对重新连接,但收到此消息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
可能有人正在做一些恶意的事情!有人可能现在正在窃听你(中间人攻击)!主机密钥也可能刚刚被更改。远程主机发送的 ECDSA 密钥的指纹是 SHA256:****。请联系您的系统管理员。在 /home/ 中添加正确的主机密钥/.ssh/known_hosts 删除此消息。/home/ 中的违规 ECDSA 密钥/.ssh/known_hosts:4 删除:ssh-keygen -f "/home//.ssh/known_hosts”-R ec2-.us-east-2.compute.amazonaws.com ec2-**.us-east-2.compute.amazonaws.com 的 ECDSA 主机密钥已更改,您已请求严格检查。主机密钥验证失败。
我坚持了,但没用。删除了已知主机,但没用。
现在,如果我尝试连接到 ubuntu@ec2-**.us-east-2.compute.amazonaws.com,旧密钥对也不起作用。新的错误是
权限被拒绝(公钥)。
唯一的连接方式是直接使用公共 IP。我尝试刷新 DNS 缓存,但没有任何效果。可能发生了什么?
答案1
您的 ~/.ssh/known_hosts 文件中有该主机名的缓存主机密钥。您之前是否连接到过同名的主机,但随后又替换了该实例?
要么完全删除您的 ~/.ssh/known_hosts 文件,要么从编辑器中的文件中删除主机名的条目。
答案2
使用此功能从已知主机文件中删除属于主机名或 IP 的 ssh 密钥。
ssh-keygen -R [hostname-or-IP]