自动转发至反向隧道

自动转发至反向隧道

我有一台位于 NAT 后面的 Raspberry Pi(远程)。为了从我的家用计算机(本地)访问它,我通过反向隧道将其连接到我的 ASW 服务器(服务器),如各种帖子中所述。

远程连接到服务器:

ssh -f -N -T -R22222:localhost:22 -i ssh-ec2/ec-key.pem [email protected]

然后我可以通过 SSH 连接到我的 ASW 服务器,登录后,我可以通过以下方式连接到我的 Raspberry:

ssh -p 22222 pi@localhost

一切正常。

我现在的问题是,我想从本地直接使用 intellij 与远程 Raspberry 进行远程会话。为此,我需要通过 SSH 连接到我的服务器,然后再次手动输入连接到我的远程。

如何设置隧道以便可以连接到我的服务器,但直接连接到端口22222?我已从本地计算机尝试了以下操作,但连接超时:

ssh -l 9999:localhost:22222 [email protected] -i c:/privatekey.pem

有什么建议我做错了吗?抱歉,我对 Linux 完全陌生,所以如果这是一个愚蠢的问题,请原谅。

答案1

当您从 ASW 服务器连接时,您将连接到localhost。请注意man 1 ssh说:

-R [bind_address:]port:host:hostport

[…]

默认情况下,服务器上的侦听套接字将仅绑定到环回接口。这可以通过指定 来覆盖bind_address。空的bind_address或地址*表示远程套接字应侦听所有接口。仅当启用bind_address服务器的选项时,指定远程才会成功(请参阅)。GatewayPortssshd_config(5)

然后man 5 sshd_config说:

GatewayPorts

指定是否允许远程主机连接到为客户端转发的端口。默认情况下,sshd(8)将远程端口转发绑定到环回地址。这可以防止其他远程主机连接到转发端口。GatewayPorts可用于指定sshd应允许远程端口转发绑定到非环回地址,从而允许其他主机连接。该参数可能是no强制远程端口转发仅对本地主机可用,yes强制远程端口转发绑定到通配符地址,或clientspecified允许客户端选择转发绑定到的地址。默认值为no

为了使它工作你应该做这样的事情:

相关内容