您能进行连续 ssh 隧道连接吗?

您能进行连续 ssh 隧道连接吗?

我看见这里实现两次 ssh 跳转的方法

ssh -L 9998:主机2:22 -N 主机1
ssh -L 9999:本地主机:1234 -N -p 9998 本地主机

我想我明白一条线路的作用,但不知道它们如何协同工作。你能继续这样做,让隧道内有隧道,实现多跳吗?会是这样的吗?

ssh -L 9997:主机3:22 -N 主机
2 ssh -L 9998:主机2:22 -N 主机1
ssh -L 9999:本地主机:1234 -N -p 9998 本地主机

答案1

这取决于您尝试通过 SSH 转发的内容。也就是您要做什么。

-L lport:host:hport语法使得如果您连接到lport起始主机,您也将连接到hport主机。

假设您在 上hostA,并且想要访问 上的 http(端口 80),hostD但该端口只能通过访问,而hostC该端口只能通过 访问,hostB并且可通过您的起始 访问hostA

您可以运行(从hostA):

ssh -L 8080:localhost:8081 主机B

然后在该hostB登录上运行:

ssh -L 8081:localhost:8082 主机C

然后在该hostC登录上运行:

ssh -L 8082:本地主机:80 hostD

然后您可以(在 上hostA)访问localhost:8080并连接到hostD的端口 80。

注意:您可以在所有机器上使用相同的 8080,因为您每台机器只使用该端口一次。我只是增加了每个连接的端口号,以更好地显示端口之间的相关性。

要记住的另一件事是主机(两个:之间)是在您正在 ssh 进入的机器的上下文中。因此,如果hostC可以直接访问hostD的端口 80,您可以执行以下操作:

您可以运行(从hostA):

ssh -L 8080:localhost:8081 主机B

然后在该hostB登录上运行:

ssh -L 8081:主机D:80 主机C

相关内容