通过 HTTP 上的 SSH 绕过 Linux 防火墙

远程工作已成常态;使用这个有用的开源解决方案,从任何地方快速连接和访问您的所有设备。
157 位读者喜欢这篇文章。

随着连接性和远程工作的增长,访问远程计算资源变得日益重要。但是,为设备和硬件提供外部访问的要求使这项任务变得复杂且有风险。为了减少这种摩擦,ShellHub 是一个云服务器,允许从任何外部网络通用访问这些设备。

ShellHub 是一个开源解决方案,根据 Apache 2.0 许可,它涵盖所有这些需求,并允许用户通过单个帐户连接和管理多个设备。它的开发旨在方便开发人员和程序员的任务,使任何硬件架构都可以远程访问 Linux 设备。

更仔细地观察,ShellHub 解决方案使用 HTTP 传输层来封装 SSH 协议。这种传输层选择允许在大多数网络上无缝使用,因为它通常可用,并且被大多数公司的防火墙规则和策略所接受。

这些示例使用 ShellHub 版本 0.3.2,于 2020 年 6 月 10 日发布。

使用 ShellHub

要访问该平台,只需访问 shellhub.io 并注册以创建帐户。您的注册数据将帮助开发团队了解用户概况,并提供更多关于如何改进平台的见解。

ShellHub registration form

图 1:shellhub.io 中提供的注册表单

ShellHub 的设计具有直观且简洁的界面,可以以最快的方式提供所有信息和功能。注册后,您将进入仪表板,准备注册您的第一个设备。

添加设备

要启用通过 ShellHub 连接设备,您需要生成一个标识符,该标识符将在设备连接到服务器时用于验证您的设备。

此标识必须在代理(ShellHub 客户端)内部配置,该代理将与镜像一起保存在设备中,或者必须作为 Docker 容器添加。

默认情况下,ShellHub 使用 Docker 运行代理,这非常方便,因为它可以在现有系统上无摩擦地添加设备,而 Docker 支持是唯一的要求。要添加设备,您需要粘贴命令行,该命令行显示在 ShellHub Cloud 对话框中(参见图 2)。

图 2:将设备添加到 ShellHub Cloud

默认情况下,设备使用其 MAC 地址作为其主机名。在内部,设备由其密钥标识,该密钥在设备注册期间生成,用于向服务器验证身份。

访问设备

要访问您的设备,只需转到仪表板中的“查看所有设备”,或单击左侧菜单上的“设备 ”;这些将列出您所有已注册的设备。

设备状态可以很容易地在页面上看到。在线设备在其旁边显示绿色图标,可以通过单击终端图标进行连接。然后您输入凭据,最后单击“连接”按钮,请参见(图 3)。

图 3:使用 Web 上的终端访问设备

访问设备的另一种方法是使用任何 SSH 客户端,如 PuTTYTermius,甚至 Linux 终端。我们可以使用 ShellHub 标识(称为 SSHID)作为目标地址进行连接(例如,ssh username@SSHID)。图 4 说明了我们如何使用 Linux SSH 客户端在终端上连接到我们的机器。

图 4:使用 Linux 终端连接到设备

每当您登录 ShellHub Cloud 平台时,您都可以访问仪表板上所有已注册的设备,以便您可以随时随地访问它们。ShellHub 通过开源平台以透明的方式简化了与远程机器保持通信安全的过程。

加入 GitHub 上的 ShellHub 社区 GitHub,或随时通过 Gitter 或发送电子邮件至 contato@ossystems.com.br 向开发团队发送您的建议或反馈。我们很乐意收到社区成员的贡献!

接下来阅读什么

7 条评论

这是一篇很棒的文章。我一直觉得关于防火墙的文章很有趣,你的观点很棒 :)

我也推荐 corkscrew 作为 .ssh/config 中的配置代理
只需要在目标服务器上的 443 端口上运行 ssh。
从那里你可以使用目标作为跳板机。
这样你就可以使用原生 ssh。

绝对精彩......谢谢你的分享。

这在某些情况下可能有效。但是,我们大多数人面临的一个挑战是,我们的私有网络的暴露 IP 地址会定期更改。此解决方案解决了该问题。并不是说它是万能药,但它总归是一种方法。

我想总可以探索租用某处的 Linux 服务器并在其上运行 shellinabox。如果我能找到空闲时间,这可能会成为一个不错的项目。 ;)

回复 作者 Nico (未验证)

我刚刚快速浏览了入门文档。安装 ShellHub 的第一个步骤是如何,“... 在您的本地机器上或在 AWS、Azure、Google Cloud 或 Digital Ocean 等 IaaS 提供商上安装并运行 ShellHub 的自托管实例。” 因此,如果您愿意,您可以走这条路。

回复 作者 sgtrock

非常好的解释。

© . All rights reserved.