自动转发到反向隧道


1

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

远程连接到服务器:

ssh -f -N -T -R22222:localhost:22 -i ssh-ec2/ec-key.pem ec2-user@xxx.xxx.xxxx.xxx

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

ssh -p 22222 pi@localhost

一切正常。

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

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

ssh -l 9999:localhost:22222 ec2-user@52.201.173.131 -i c:/privatekey.pem

我有什么错误吗?对不起,我是Linux新手,如果这是一个愚蠢的问题,请道歉。

Answers:


3

从AWS服务器连接时,连接到 localhost。注意什么 man 1 ssh 说:

-R [bind_address:]port:host:hostport

[...]

默认情况下,服务器上的侦听套接字仅绑定到回送接口。这可以通过指定a来覆盖 bind_address。一个空的 bind_address或地址 *,表示远程套接字应该侦听所有接口。指定遥控器 bind_address 只有服务器才会成功 GatewayPorts 选项已启用(请参阅 sshd_config(5) )。

然后 man 5 sshd_config 说:

GatewayPorts

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.