如何透過 HTTPS 建立 SSH 隧道代理?

如何透過 HTTPS 建立 SSH 隧道代理?

當網路在 HTTP 和 HTTPS 之外的所有連接埠上被封鎖時,如何允許 SSH?

我很想知道如何創建一個 SSH 隧道,該隧道允許我透過 443 進行 SSH,並且即使在伺服器重新啟動後也能正常工作?

我正在嘗試使用 Laravel Forge 來配置伺服器。但是,如果 SSH 連接埠被阻止,Laravel forge 將無法運作。因此,我試圖找到一種方法來允許 Laravel Forge 透過隧道代理使用 SSH。

答案1

好吧,如果連接埠443 被網路伺服器使用,你就不能將它重用於其他用途(實際上有很多方法可以做這樣的事情)我建議是讓伺服器建立到另一個盒子的出站SSH 連接,很可能是防火牆策略將允許這樣做。

做這樣的事情:

ssh -L 2222:localhost:22 some.other.server

(也許甚至可以使用服務使其持久。https://gist.github.com/drmalex07/c0f9304deea566842490

然後登入 some.other.server 並執行以下操作:

ssh -p 2222 webserveruser@localhost

或讓您的自動化連接到此連接埠。

要更進一步,您可以使用跳轉選項直接跳轉透過中間伺服器。你的 .ssh/config 可能看起來像這樣。

Host intermediate.server
  HostName intermediate.server
  User someuser
  IdentityFile ~/.ssh/id_rsa


Host webserver
  HostName localhost
  User someuser
  Port 2222
  IdentityFile ~/.ssh/id_rsa
  ProxyJump intermediate.server

有效地允許您執行此操作:

ssh webserver

一定要喜歡 ssh!

相關內容