通过 draconic http 代理建立 ssh 隧道

通过 draconic http 代理建立 ssh 隧道

我所在的网络只有一个 http 服务器可以访问互联网。我想通过 ssh 连接到我的服务器。

如果我尝试建立 ssh 连接:

ssh myserver -p 1234

我得到了一个闪烁的光标。我的服务器上的日志没有显示连接尝试。

所以我的第一个想法是使用 corkscrew 通过 http 隧道传输 ssh 流量。但如果我将 corkscrew 设置为我的 ProxyCommand 并尝试连接,它也会失败:

ssh myserver -p 1234

Proxy could not open connnection to myserver:  Tunnel or SSL Forbidden
ssh_exchange_identification: Connection closed by remote host

服务器日志也没有显示任何连接尝试。所以我想也许代理阻止了所有不通过端口 80 或 443 的流量。我将服务器的 ssh 端口更改为 443。我仍然无法连接,但其中一条错误消息消失了:

ssh myserver -p 443  

ssh_exchange_identification: Connection closed by remote host

服务器日志再次没有显示连接尝试。我最后尝试的是手动使用 corkscrew:

corkscrew myproxy 8080 myserver 443

SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3

这为我提供了 ssh 服务器版本字符串。但之后没有其他任何事情发生。ssh 客户端似乎挂起了。同时,服务器日志显示以下消息:

Did not receive identification string from 1.2.3.4

因此它似乎能够建立连接。我怀疑客户端最初能够连接到服务器,并且服务器会用其版本字符串进行回复。但是当客户端尝试回答时,它会被代理拦截。

但目前我还不知道还能尝试什么。

相关内容