從客戶端透過伺服器SSH到嵌入式Linux

從客戶端透過伺服器SSH到嵌入式Linux

我希望能夠從任何地方直接連接到沒有公用 IP 位址的嵌入式 Linux(稱為 C)。

C 可以建立到伺服器的連線(使用 SSH -R),如果我透過 SSH 進入伺服器,我就可以透過 SSH 進入嵌入式 Linux。

但是,我希望能夠從客戶端透過 SSH 連接到 C,而不必先透過 SSH 連接到伺服器。 (我無法使用 SSH -R 從 C 到客戶端建立連線)

這可能嗎?

答案1

您可以相當輕鬆地做到這一點。一種方法是使用 SSH 的遠端連接埠轉發,C 透過這種方式告訴伺服器將連接埠轉發回它,如下所示:

ssh -R 2222:localhost:22 server

當從 C 執行此命令時,將告訴伺服器取得到連接埠 2222 的任何連線並將它們轉送到連接埠 22 上的 C。

同樣,您可以透過防火牆規則在伺服器上設定連接埠轉送。

答案2

如果您希望能夠連接到轉發的端口,您需要四件事:

  • 將伺服器公用 IP/主機名稱指定為 的第一個參數-R,否則它將僅偵聽localhost,這顯然無法從伺服器外部存取。
  • 配置伺服器GatewayPorts,這將允許從外部存取轉送的端口
  • 使用-g開關基本上允許客戶端進行相同的操作
  • 2222在伺服器防火牆中開啟連接埠。

該指令可能如下所示:

ssh -g -R server:2222:localhost:22 server

相關內容