关于Ubuntu服务器ssh自动断开

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

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Ubuntu服务器上配置SSH,你可以按照以下步骤进行操作: 1. 打开终端,使用root用户或具有sudo权限的用户登录到服务器。 2. 确保OpenSSH服务器已安装。如果未安装,可以运行以下命令进行安装: ``` sudo apt update sudo apt install openssh-server ``` 3. 配置SSH服务器。可以编辑SSH配置文件`/etc/ssh/sshd_config`来进行配置: ``` sudo nano /etc/ssh/sshd_config ``` 在此文件中,你可以进行一些常见的配置,例如更改SSH端口、启用公钥身份验证、禁用密码身份验证等。根据你的需求进行相应的更改。 4. 如果你更改了SSH端口,请确保防火墙允许流量通过该端口。例如,如果你使用的是ufw防火墙,可以运行以下命令允许新的SSH端口: ``` sudo ufw allow <新SSH端口号>/tcp ``` 5. 保存并关闭SSH配置文件后,重新加载SSH服务以使更改生效: ``` sudo systemctl reload sshd ``` 6. 如果你启用了防火墙,请确保允许SSH流量通过。例如,使用ufw防火墙可以运行以下命令启用SSH流量: ``` sudo ufw allow OpenSSH ``` 7. 现在,你应该能够使用SSH客户端连接到你的Ubuntu服务器了。你可以使用以下命令连接到服务器: ``` ssh username@server_ip_address ``` 将`username`替换为你的用户名,`server_ip_address`替换为你的服务器IP地址或主机名。 这些是在Ubuntu服务器上配置SSH的基本步骤。根据你的需求,你可能还需要进行其他配置,例如设置密钥身份验证、限制用户访问等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值