尝试远程 ssh 到 ubuntu 服务器时,远程主机关闭了连接

尝试远程 ssh 到 ubuntu 服务器时,远程主机关闭了连接

我安装了 ubuntu server 22.04.1 LTS,它已启动并运行。我还在我的 Linux 发行版中安装了 openssh-server,ssh 也已启动并运行。现在,当我从同一 LAN 上的另一台 PC 通过 ssh 进入我的 Linux 服务器时,我可以成功登录并访问我的服务器。我试图通过互联网远程访问我的服务器,因此我使用了与 LAN ssh 连接相同的方法,但使用我的公共 IP,ssh username@myPublicIp但当我这样做时,我收到错误kex_exchange_identification: Connection closed by remote host Connection closed by myPublicIp port 22。为什么会发生这种情况?通过互联网远程 ssh 到我的 Linux 服务器的正确方法是什么?提前致谢。

编辑:我在路由器上添加了端口转发规则。端口转发配置屏幕截图附在下面。

笔记:我也尝试在路由器上设置 DMZ,但这也没有帮助。 在此处输入图片描述

答案1

可能发生的情况是您的请求被路由器阻止。默认情况下,家用路由器将阻止来自本地网络外部的传入数据包,除非连接是由所述网络中的设备发起的(即,响应您的设备发送 HTTP 请求而发送网页的 Web 服务器将被允许通过)。如果您远程访问服务器,则需要在路由器上设置端口转发。如果您还不知道如何操作,您的路由器制造商应该有指南,或者您可以在线查找。但是,打开端口时应小心谨慎,因为当您这样做时,任何人都可以访问它,包括试图出于恶意目的访问您的网络的攻击者。由于它只是 ssh,请确保您使用安全的 ssh 密码或使用 RSA 密钥。您可能需要研究的另一个工具是失败2ban。这将在一定次数的失败尝试后阻止尝试连接的 IP 地址。

相关内容