使用 scp 时主机密钥验证失败

使用 scp 时主机密钥验证失败

当我scp在VM1和VM2之间使用时,没有问题,因为其他原因我删除了VM2,并通过VMware工作站重建它,当我使用scp将文件从VM1复制到新的VM2时,出现了问题:

# scp /home/iso/********.iso [email protected].***:/home/  

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
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.  
The fingerprint for the ECDSA key sent by the remote host is  
df:33:37:b6:7b:c9:e5:19:65:f7:38:ad:94:b2:9e:36.  
Please contact your system administrator.  
Add correct host key in /root/.ssh/known_hosts to get rid of this message.  
Offending ECDSA key in /root/.ssh/known_hosts:1  
ECDSA host key for 192.168.1.*** has changed and you have requested strict checking.  
Host key verification failed.  
lost connection 

答案1

提到的警告是,自您第一次登录以来,远程主机的指纹已被更改。该警告还指出了known_hosts 中的违规记录。 Offending ECDSA key in /root/.ssh/known_hosts:1这表明known_host 中的第一行有问题。

您可以通过执行 ssh-keygen -R 192.168.1.xxx或使用来 删除它vi +1 /root/.ssh/known_hosts

指纹是通过对存在于/etc/ssh/其中的密钥进行散列处理而生成的。在第一个连接中接受后,它将被添加known_host并在登录期间进行评估。

编辑1

如果您的目标服务器有多个整体,例如domain, domain.foo1.2.3.4则应全部删除并通过执行您尝试使用的命令(例如ssh/ sftpetc )手动输入它们。

您还可以添加来自远程主机的密钥,ssh-keyscan这将为您提供指纹并将其存储到known_hosts.然而,指纹逻辑是您应该在将遥控器添加到之前验证遥控器known_host

答案2

由于您重建了 VM2,因此 VM1 中的密钥与较新的 VM 不同。

您应该删除/root/.ssh/known_hosts.


编辑

正如 Hunter 所建议的,您可以打开known_hosts 文件以查找关联的密钥,然后删除该行。

答案3

每次安装新操作系统时,也会安装新的 SSH 服务器。安装 SSH 服务器后,它会生成一个新的随机密钥。

您的 SSH 客户端希望确保它连接到正确的服务器,因此它要么要求您确认该密钥的指纹,要么与名为known_hosts的文件中的现有条目进行比较。

之所以会出现很大的警告,是因为在正常情况下(您没有重新安装),试图窃听的人伪造了服务器的地址,但无法伪造密钥(这是不可能的)。

只要您确定服务器已重新安装,您可以使用以下命令简单地删除known_hosts文件:

rm $HOME/.ssh/known_hosts

然后系统会要求您确认新密钥,之后即可连接成功。

相关内容