使用 Linux 和 AWS 在本地网络之间进行 SSH 端口转发

使用 Linux 和 AWS 在本地网络之间进行 SSH 端口转发

我有 :

本地网络 A,具有:

  • 脱机 Linux 设备 192.168.0.1
  • 离线 Windows 设备 192.168.0.2 连接到 Linux 192.168.0.1 中的端口 4444
  • 带有两个以太网端口 192.168.0.3 和 DHCP 的 Raspberry Pi,用于连接到反向 SSH AWS 服务器

本地网络 B,具有:

  • 脱机 Windows 设备 192.168.0.4
  • Raspberry Pi 具有两个以太网端口 192.168.0.5 和 DHCP,可连接到反向 SSH AWS 服务器

如何让我在网络 B 中的 Windows PC 连接到 192.168.0.5:4444 并使用端口转发获取来自网络 A、192.168.0.1:4444 设备的数据?

理想情况下,作为配置,而不是每次重启时都必须运行的命令。

我已经阅读了 ssh 转发和隧道信息,但我想要完成的事情比我所理解的要复杂得多。

答案1

在 AWS 服务器中,编辑 ~/.ssh/config 以添加主机名 192.168.0.1

Host networkApi
  Hostname 127.0.0.1
  User pi
  Port 52566   #Port used to ssh to the pi using reverse ssh
  IdentityFile ~/.ssh/networkApi-id_rsa
  LocalForward 4444 192.168.0.1:4444

这使得 192.168.0.1 端口 4444 中的信息在 AWS 端口 4444 中可用

在同一个 AWS ~/.ssh/config 文件中,编辑第二个 Pi 信息

Host networkBpi
  Hostname 127.0.0.1
  User pi
  Port 52587   #Port used to ssh to the pi using reverse ssh
  IdentityFile ~/.ssh/networkBpi-id_rsa
  GatewayPorts yes
  RemoteForward 4444 127.0.0.1:4444

这使得 AWS 端口 4444 在网络 B Raspberry Pi 中可用。在网络 B Raspberry Pi 中,编辑文件 /etc/ssh/sshd_config 以设置“GatewayPorts yes”,然后使用以下命令重新启动 ssh 守护程序

sudo service sshd restart

现在从 AWS ssh 进入一个 Pi,从另一个控制台 ssh 进入另一个 Pi。您应该能够通过 telnet 10.10.5.84 4444 访问 192.168.0.1:4444 中的信息,其中 10.10.5.84 是 DHCP 为网络 B 中的 Raspberry Pi 提供的 IP 地址。

相关内容