SSH 删除没用的know_hosts连接记录

287 阅读1分钟

现象

ssh登录远程服务器时,控制台打印了如下信息:REMOTE HOST IDENTIFICATION HAS CHANGED! .....

场景

已经配置过远程服务器连接,因为服务器系统重做,在连接远程服务器时, 控制台会报如下信息:

# xxx 为~/.ssh/config中配置的连接简称
➜  ~ ssh xxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXX.
Please contact your system administrator.
Add correct host key in /Users/XXX/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/XXX/.ssh/known_hosts:12
ECDSA host key for 1XXXXXXXXXX0 has changed and you have requested strict checking.
Host key verification failed.

原因

ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

解决方案(推荐方案3):

方法一:

rm -rf ~/.ssh/known_hosts

++++++++++++++++++

优点:干净利索

缺点:把其他正确的公钥信息也删除,下次链接要全部重新经过认证

方法二:

vi ~/.ssh/known_hosts

删除对应ip的相关rsa信息(本例可知删除12信息即可)

++++++++++++++++++

优点:其他正确的公钥信息保留

缺点:还要vi,还要找到对应信息,稍微优点繁琐

方法三:

清除旧的公钥信息

# 192... 修改成自己的服务器地址
ssh-keygen -R 192.168.0.100

++++++++++++++++++

优点:快、稳、狠

缺点:没有缺点

参考连接

blog.csdn.net/yasaken/art… jingyan.baidu.com/article/03b…