我从未对我的 Apache 设置进行过大量配置。我只使用 Apache 来托管 ownCloud 和 Gitlab 服务器,但 Apache 占用了两个最未阻塞的端口:443 和 80。我想使用 Apache 重定向来自子目录(mysite.com/ssh
例如)的所有流量并将所有内容重定向到localhost:22
。该解决方案必须在 Apache 之外的任何配置上都有效。我只是希望所有请求都发送到mysite.com/ssh
然后发送到mysite.com:22
,然后 ssh 服务器只会看到来自 127.0.0.1 的请求。理论上,当除 80 和 443 之外的所有端口都被阻止时,这应该允许 ssh 连接。这可能吗?
答案1
如果要在端口 443 上监听 HTTPS 和 SSH 协议,则需要使用类似http://www.rutschle.net/tech/sslh.shtml或者https://github.com/stealth/sshttp。您不能仅使用 Apache 来完成此操作,原因 Tero 已解释过。
答案2
不,不可能。当您向 http(s)://mysite.com/ssh 发出请求时,该请求始终使用 HTTP / HTTPS 协议发出。
您需要经过特别修改的 SSH 客户端和服务器端代理来完成您的要求。
SSH 客户端必须将所有 SSH 流量封装到发往 Web 服务器的 HTTP / HTTPS 请求中。服务器端代理必须扩展流量,并将其传递到盒子上的 SSH 服务器。
但由于 SSH 安全性问题,我不能 100% 确定这是否可行。