-1

我在 ubuntu 服务器上运行的 ssh 服务器有点问题。我正在使用密钥对身份验证,并且可以正常连接,但问题是我可以在任何端口(使用隧道)上连接,即使在 sshd_config 中定义了“端口 22”。为什么我可以连接任何端口?如何阻止 ssh 侦听端口 22 以外的端口?

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

0

在您的屏幕截图中,本地地址列告诉您正在侦听端口 22 的所有接口(例如 0.0.0.0:22)。Foreign Address 列告诉任何人都可以从任何端口的任何 ip 连接(例如 0.0.0.0:*)。对于 IPV6,同样如此。

连接通常是从一些随机的免费大号端口开始的,因此可以在外部地址中使用通配符。您唯一关心的是本地端口 22 上有一个侦听器。正如您所愿。

您首先连接端口 22(因为您没有使用 -p 开关指定任何其他内容),然后 ssh 将数据从一台机器的端口 54321 定向到另一台机器的 80 端口。因此,数据的路径类似于:

机器 A,端口 54321 -> 机器 A,端口随机 -> 机器 B,端口 22,机器 B,端口 80。

于 2013-09-10T12:42:20.813 回答
0

所以问题是,当未定义时,它将连接到默认端口 22 上的 ssh 服务器。您可以使用“-p xxxx”显式定义端口,其中 xxxx 是您要连接的 ssh 服务器端口。建立隧道时,“本地端口”是您将连接到的计算机上的端口,“远程端口”是连接将结束的远程计算机上的端口。所以它是这样的:

(本地端口->随机端口)->->->->(sshport->远程端口)

sshport由-p定义,未定义时默认为22端口

于 2013-09-10T12:54:16.743 回答