当我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.foo
,1.2.3.4
则应全部删除并通过执行您尝试使用的命令(例如ssh
/ sftp
etc )手动输入它们。
您还可以添加来自远程主机的密钥,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
然后系统会要求您确认新密钥,之后即可连接成功。