[英]How to securely maintain a persistent SSH connection in PHP?
我目前正在使用一个使用主从模型的VPS面板。 一个主服务器运行用PHP编写的面板,并通过SSH管理多个从服务器。 从属服务器通过有限帐户访问,该帐户可以sudo到特定服务器管理相关命令,并且所有交互都记录在帐户本身无权访问的目录中。
我目前正在使用PHP-SSH2,但这种方法有一些问题:
现在,我正在努力解决最后一个问题。
我遇到过几种可能的解决方案,但它们都存在某种问题:
以下不是一个选项:
在实践中,我看到有时超过一分钟的页面加载时间,因为必须联系多个服务器以获取页面加载。 对于VPS面板来说,这显然是不可接受的。
我的目标是使用某种实现来避免使用PHP-SSH2时引入的连接开销。 以安全的方式执行此操作的最佳方法是什么,同时在从属服务器上引入最少量的依赖项?
您可以使用autossh,并使用autossh创建反向(portforward)隧道。 然后让你的php应用程序与那些反向ssh端口对话。 如果ssh连接失败,autossh将继续尝试重新创建连接。 您的PHP应用程序将无法连接到反向隧道,甚至没有超时。
选项3如何,但也在PHP中编写守护进程? 这是我尝试使用自己的类似项目的路线。
您可以使用FIFO文件而不是套接字与其进行通信。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.