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