基于HTTP的SSH(S)

我在work.com上有一个apache服务器,它只允许通过端口80和443的传入HTTP和HTTPS请求。这些是在networking上打开的唯一端口。

我希望在家时能够通过SSH连接到服务器,但是IT拒绝打开端口22。

有没有一种方法来configurationApache接受SSH通信在地址ssh.work.com,并将其转发到端口80上的sshd?

有这个目的的sslh 。

如果你需要shell访问,你应该从你的组织中获得,而不必做怪异的东西来获得它。

话虽如此,你可以安装webshel​​l或anyterm,并完成你所需要的,但得到你的正常shell访问,否则你可能会遇到麻烦。 webshel​​l技巧非常适合于当你需要在家庭计算机上从我们都知道的代理networking中获得一个shell。

请参阅本指南使用开瓶器

首先,如果你打算在非标准的端口上运行ssh来打败你本地的IT策略(错误的头像是我自己认为的),那么使用443而不是80是正常的。这是因为http经常由组织代理; 这个代理通常是透明的,所以很难判断它是否发生。 相比之下,HTTPS通常是不可能被代理的,因此端到端的encryption通常是不可能的,所以大多数组织都不需要麻烦,或者将代理configuration为简单的传递。 这使TCP / 443成为非标准ssh比TCP / 80更安全的select。 我注意到,Joschi对sslh的build议旨在与https共存,而不是http。

也就是说,ssh并不是我所知的支持任何forms的虚拟主机名,所以如果使用ssh.work.comparsing为已经运行真正的apache侦听器的IP地址在TCP / 443上。 但是,如果您有一个公共IP地址,您可以在工作机器上为此设置备用,则可以将sshdconfiguration为在端口443上运行

Port 443 

sshd_config ,然后用-p 443标志将远程ssh客户端指向你的ip地址。

如果你不能为此留出ip地址,那么sslh就是你的男人。