是否可以使用标准 ssh 程序通过 ssh 隧道传输 https 流量?

Juh*_*uha 18 ssh https tunnel

我可以通过 ssh-tunnel 重新路由 https 流量(svn 存储库的)吗?

问题是,如果我只是创建一个用于侦听的隧道,则使用 https 的服务将不起作用,例如:

ssh -L 12345:server.com:443 localhost
Run Code Online (Sandbox Code Playgroud)

我还需要做些什么吗?目的是传输https://PROJECT.googlecode.com/svn/,其中 PROJECT 是项目名称。

Rob*_*ert 12

HTTPS 连接可以通过 SSH 端口转发重定向 - 但是,在主机名不匹配的情况下,SSL/TLS 证书验证将失败:

您正在连接到https://localhost:12345,但服务器证书包含名称 server.com。

我不会直接转发 HTTPS 连接,而是在您打开 SSH 连接的远程计算机上运行 HTTP(s)/SOCKS 代理。然后设置你想要隧道的程序通过端口转发来使用这个代理。这将是一个干净的解决方案。

更新:似乎 SVN 可以使用 HTTP 代理,但不能使用 SOCKS 代理。如果想要这样做,您需要在本地系统上安装一个额外的“socksifier”。请参阅Serverfault.com:如何使用 ssh 隧道为 subversion 设置代理?

  • 您可以通过将远程主机添加到 IP 地址为 127.0.0.1 的本地主机文件来解决 HTTPS 证书问题。然后您实际上可以使用 https://remotehost:12345 地址,但流量仍将被定向到 SSH 隧道。 (7认同)