关于Ubuntu服务器ssh自动断开

avatar
作者
猴君
阅读量:1

1. 报错信息

Destination Host Unreachable

检查是否是因为进入了休眠

systemctl status sleep.target 

若 Loaded 字段值为 loaded ,表示启动了自动休眠
若 Loaded 字段值为 masked,表示未启动自动休眠

关闭自动休眠

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target 

2. 报错信息

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
xxx
Please contact your system administrator.
Add correct host key in C:\Users\xxx/.ssh/known_hosts to get rid of this message.
Offending RSA key in C:\Users\xxx/.ssh/known_hosts:14
ECDSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
@警告:远程主机标识已更改! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
可能有人正在做一些令人讨厌的事情!
有人可能正在窃听您(中间人攻击)!
主机密钥也可能刚刚被更改。
远程主机发送的 ECDSA 密钥的指纹是
SHA256:xxx
请联系您的系统管理员。
在 C:\Users\xxx/.ssh/known_hosts 中添加正确的主机密钥以消除此消息。
C:\Users\xxx/.ssh/known_hosts:14 中的违规 RSA 密钥
xxx.xxx.xxx.xxx 的 ECDSA 主机密钥已更改,您已请求严格检查。
主机密钥验证失败。

大概意思就是这是一条警告信息,提示服务器的密钥已改变,从而无法连接到服务器。

原因

这个警告表明与远程主机建立连接时,检测到其公钥(ECDSA 密钥)与之前记录的不同。这可能是由于多种原因引起的,其中一些可能包括:

  1. 系统管理员进行了更改: 系统管理员可能在主机上进行了一些更改,包括生成新的密钥对,这可能是为了提高安全性或其他管理目的。

  2. 主机重新安装: 如果远程主机重新安装了其操作系统,可能会生成新的密钥对。

  3. 安全性问题: 这可能是中间人攻击的迹象,即有人试图劫持您与远程主机之间的通信。中间人攻击是一种攻击方式,攻击者试图截获、篡改或窃听通信流量。

  4. 网络问题: 在某些情况下,网络问题可能导致密钥验证失败,从而触发这样的警告。

如果您看到这个警告,建议采取以下步骤:

  • 验证远程主机身份: 确认远程主机的身份,确保您连接到正确的主机。可以通过其他途径(如电话、短信等)验证主机的身份。

  • 联系系统管理员: 如果可能的话,联系远程主机的系统管理员,了解是否有计划更改密钥或其他相关操作。

  • 检查网络连接: 检查您的网络连接,确保没有中间人攻击或其他网络问题。

  • 更新本地密钥记录: 如果您确认密钥更改是正常的,请更新您本地系统上的远程主机的密钥记录,以便将来的连接不再触发警告。

总的来说,这个警告表明可能存在潜在的安全问题,需要谨慎处理。如果您对这个情况感到困惑或不确定,最好联系系统管理员以获取详细的解释和建议。

解决方案(两种,windows 10)

从客户端本地密钥缓存中删除指定的 ssh 服务器密钥,这样客户端就不会再认为该服务器是已知且可信任的了。下次连接时重新获取新的密钥即可。

  1. 按照提示找到本机的 known_hosts 文件,删除对应的条目,如下,找到远程主机的 ip 地址及其对应的条目删除保存即可。
    在这里插入图片描述

  2. 或者在 cmd 中运行以下命令

    ssh-keygen -R [远程主机 ip 地址] 

    本质也是删除 known_hosts 文件中相关的条目

重新连接远程服务器即可(会重新获得新的密钥)。

参考

https://cloud.tencent.com/developer/article/2184623
https://www.jianshu.com/p/2e73860b8172

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!