[英]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.