Ubuntu

如何使用另一台伺服器連接到防火牆後面的 SSH 伺服器?

  • January 11, 2022

我有 2 台伺服器,網路如下所示:

Server_A (Ubuntu) -> Firewall/Router -> Internet

Server_A 可以連接到 Internet 上的任何伺服器。

Server_B (Ubuntu) which is directly connected to the internet.

Server_B 上的埠轉發或任何防火牆沒有限制

我無法從 Internet 連接到 Server_A,因為它位於本地網路內,並且此處無法進行埠轉發,我無權訪問路由器。

Server_A 可以連接到 Server_B,以便我可以通過 SSH 連接到 Server_B 並與 Server_A 通信嗎?

如果您可以在 Server_A 上執行 ssh 伺服器,則您可以從 Server_A SSH 到 Server_B,並將 Server_B 上的埠轉發回 Server_A 的 ssh 伺服器。

Server_A$ ssh -R 12345:localhost:22 Server_B
Password:
Server_B$ 

然後在 Server_B 上,您現在可以使用 localhost 在埠 12345 上 ssh 到 Server_A:

Server_B$ ssh -p 12345 localhost
Password:
Server_A$

如果你真的想在 Internet 上公開 Server_A 的 ssh 伺服器,你可以讓其他主機可以訪問埠轉發,但這需要 Server_B 的 sshd_config 文件允許GatewayPorts

Server_A$ ssh -R '*:12345:localhost:22' Server_B
Password:
Server_B$ 

然後從任何地方:

Anywhere$ ssh -p 12345 Server_B
Password:
Server_A$

但正如評論中提到的,要非常小心,不要越過一些重要的安全策略。

引用自:https://unix.stackexchange.com/questions/338919