在端口443上运行多个服务,通过HTTPS隧道SSH

情况:我想通过HTTPS隧道SSH会话。 我有一个非常严格的防火墙/代理,只允许HTTP,FTP和HTTPSstream量。

什么起作用:通过代理build立一个隧道到一个远程的linux系统,该系统的sshd在443端口监听

问题:我必须有一个运行在端口443的Web服务器(lighty)。到其他端口的HTTPSstream量被代理禁止。

到目前为止的想法:设置一个虚拟主机,并将所有传入请求代理到本地主机:(例如22)

$HTTP["host"] == "tunnel.mylinux.box" { proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 22)) ) } 

不幸的是,这是行不通的。 我做错了什么,还是有一个原因,这是行不通的?

你可以使用一些Perl来实现这个技巧:

sslh – 在SSH和SSL / HTTPS服务器之间切换传入连接

你可能想看看sslh的C实现 。

从网站:

sslh允许在同一端口上同时接受HTTPS和SSH连接。 它可以连接到端口443上的SSH服务器(例如,从企业防火墙内部),同时仍然在该端口上提供HTTPS。 该function已经作为Perl脚本实现。

sslh有两个问题:
– 这是在Perl中。 这意味着它很饿,可能不是很快。
– 它不pipe理权限下降,这是相当可疑的。

这两个问题的明显的解决scheme是重新实现它在C,这是这个程序是关于。