我在ubuntu服务器上运行的ssh服务器有点问题。我正在使用密钥对身份验证,我能够很好地连接,但问题是我可以连接任何端口(使用隧道),即使在sshd_config中定义了“端口22”。为什么我能连接任何端口?如何阻止ssh监听端口22以外的端口?
答案 0 :(得分:0)
在屏幕截图中,Local Address列告诉您正在侦听端口22上的所有接口(例如0.0.0.0:22)。外部地址列告诉任何人都可以从任何端口连接任何IP(例如0.0.0.0:*)。对于IPV6而言,它的价格相同。
连接通常从一些随机的空闲高位端口开始,因此可以在外地地址中使用通配符。你唯一关心的是在当地港口22有一个听众。就像你想要的那样。
您首先连接端口22(因为您没有使用-p开关指定任何其他内容),然后ssh将数据从一台计算机的端口54321指向另一台计算机的80。因此,数据的路径类似于:
机器A,端口54321 - >机器A,端口随机 - >机器B,端口22,机器B,端口80。
答案 1 :(得分:0)
所以,当未定义时,它将连接到默认端口22上的ssh服务器。您可以使用“-p xxxx”显式定义端口,其中xxxx是您要连接的ssh服务器端口。隧道时,“本地端口”是您将连接到的计算机上的端口,“远程端口”是连接将结束的远程计算机上的端口。所以它是这样的:
(localport-> randomport) - &GT - → - → - →(sshport->远程端口)
sshport由-p定义,未定义时的默认值为端口22