SSH远程登录出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 解决办法

一、问题描述

在部署OpenStack环境的时候,配置的静态IP是192.168.5.1,删除了这台虚拟机.

重新板建一个虚拟机,IP配置也配置为192.168.5.1.

使用真机连接 ssh  192.168.5.1出现如下报错

SSH远程登录出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 解决办法_第1张图片

报错的大概意思是192.168.5.1的ECDSA主机密钥已更改,并且您已请求严格检查,远程主机发送的ECDSA密钥指纹信息是和本机的密钥指纹信息不一致

ssh链接的时候首先会验证公钥,如果公钥不对,那么就会报错,

二、解决办法

我们需要删除真机 ~/.ssh/known_hosts文件的192.168.5.1[需要远程的主机IP] 公钥信息

2.1 known_hosts是记录远程主机的公钥的文件

1. 第一次连接远程主机192.168.4.1,真机会把远程主机的ECDSA公钥信息添加到本机的 ~/.ssh/known_hosts文件中

Warning: Permanently added '192.168.4.1' (ECDSA) to the list of known hosts.

三、扩展知识

3.1 id_rsa             本机生成的私钥文件

3.2 id_rsa.pub      本机生成的公钥文件

3.3  authorized_keys  这个文件存放的是可以免密登录本机的远程主机公钥信息

3.1.1 模型分析

假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作

要达到的目的: 
A机器ssh登录B机器无需输入密码; 
加密方式选 rsa|dsa均可以,默认dsa 
单向登陆的操作过程(能满足上边的目的): 
1、登录A机器 
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub 
3、ssh-copy-id B机器IP地址    [本质是将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys] 
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.4.50 )

.ssh]# ssh B主机IP

你可能感兴趣的:(Linux)