我的启动是构建一台运行 debian linux 和一些自定义程序的计算机。无需用户执行任何操作即可远程访问机器的最佳方法是什么?
我们的产品目前处于早期阶段,更新过程没有经过很好的测试,可能会自行崩溃。我正在寻找一种通过 SSH 远程访问机器的简单方法。这些机器位于标准家庭防火墙后面,没有静态 IP 或任何此类性质的东西。
我的想法是使用类似于运行反向 SSH 的初始化脚本的方式,例如:ssh -N -R 2222:localhost:22 [email protected]
我不喜欢的是每台机器都必须有自己的端口和用户。此外,即使我不需要 SSH 连接,它也会打开并使用流量。
我正在考虑在服务器上编写一个应用程序,该应用程序提供一个简单的网页,客户端使用 http 请求每 x 分钟检查一次是否需要通过 SSH 连接。如果是这样,服务器脚本会创建一个帐户并告诉客户端要使用的端口和用户。
设置 OpenVPN 服务器。所有远程机器都将是服务器的 OpenVPN 客户端,并将获得一个 VPN IP 地址(例如,10.8.0.x)。因为他们是客户端,所以您不关心公共 IP 地址。此外,客户端不需要打开路由器上的端口来让流量进入,因为它们将与 VPN 服务器建立传出连接。
要访问这些机器中的任何一台,您只需 ssh 到 VPN IP 地址即可。ssh 守护进程不向公众公开,因为它只能在 VPN 网络上侦听。
您不需要在您的位置运行 OpenVPN 服务器;您可以在免费套餐中设置类似 Amazon EC2 实例的东西来尝试一下,看看它是否适合您的情况。您可能需要服务器的静态 IP;您可以摆脱某种 dyndns 恶作剧,但不能用于任何实际设置。