
當網路在 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!