我目前正在嘗試弄清楚如何使用PHP的shell函數通過SSH連接到另一臺服務器。我有一個站點,我必須將數據從PHP傳遞到自定義命令行程序,然後返回輸出。在我用的是舊的服務器,這是可能通過exec()函數:通過PHP的exec()函數連接到SSH。
$cmd = '/path/to/custom/program "arg1", "arg2", "arg3"';
exec($cms, $output);
$輸出,當然,會再抱我的程序返回的數據。
我現在處於主機不允許我運行自定義程序的位置。但是,PHP的shell函數仍然可用。主機建議我將PHP設置爲SSH到另一臺服務器,運行我需要運行的命令,然後返回輸出。這似乎是一種令人難以置信的做事背後的方式,但我知道什麼?
我的具體問題涉及如何將登錄信息傳遞給exec()命令。例如,當我手動連接到任何SSH服務器,我把:
ssh myserver.com -l myusername
然後我看到:
[email protected]'s password:
如果我是通過 「SSH myserver.com -l名爲myUsername」 爲命令exec(),我會怎麼給它的密碼?之後,我如何才能知道我的身份驗證和連接正確,因此我可以爲我的程序運行該命令?
哦,還有,我不要有權訪問PHP中的ssh2函數,我也不能安裝該擴展。
+1。使用普通舊密碼自動執行SSH並不好玩。 – Matchu 2010-02-16 18:34:34
爲了做到這一點,我不需要能夠訪問我的主機(PHP腳本運行的那臺機器)的shell?這是我忘了提及的其他事情。沒有shell訪問主服務器上的任何內容。 – 2010-02-16 19:02:12
是執行php的主服務器還是您通過ssh連接的服務器? – jdizzle 2010-02-16 22:17:11