如何通过 HTTPS 创建 SSH 隧道代理?

如何通过 HTTPS 创建 SSH 隧道代理?

当网络除 HTTP 和 HTTPS 之外的所有端口都被阻止时,如何允许 SSH?

我很好奇,如何创建一个 SSH 隧道,使我能够通过 443 进行 SSH,并且即使在服务器重启后也能工作?

我正在尝试使用 Laravel Forge 来配置服务器。但是,如果 SSH 端口被阻止,Laravel Forge 将无法工作。因此,我正在尝试找到一种通过隧道代理允许 Laravel Forge 使用 SSH 的方法。

答案1

好吧,如果端口 443 被 Web 服务器使用,那么您就不能将它重新用于其他用途(实际上有办法可以做到这样的事情)我建议让服务器创建一个到另一个盒子的出站 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!

相关内容