2017-03-01 134 views
-2

問題: 有3個設備:我的服務器(Linux),跳轉服務器(Linux)和Cisco箱。 我可以手動SSH到跳轉服務器上,並從那裏ssh到思科盒並交互式運行命令。 有沒有一種方法可以實現這個使用PHP編程? 我希望能夠在思科盒子中對來自思科盒子的響應進行interogate,並相應地裁剪下一個命令。 我在Python中做了類似的事情,但能夠直接使用套接字(中間沒有跳轉服務器) 但我更喜歡使用PHP,如果我可以。ssh通過跳轉服務器進行交互式會話

+0

谷歌'php ssh' – Ibu

+0

或谷歌交互式php外殼。 – Dimi

+0

我一直在谷歌搜索 - PHP + SSH,SSH隧道,端口轉發等整天,但沒有發現任何作品。請實用建議。 –

回答

0

man ssh

-t  Force pseudo-terminal allocation. This can be used to execute 
     arbitrary screen-based programs on a remote machine, which can be 
     very useful, e.g. when implementing menu services. Multiple -t 
     options force tty allocation, even if ssh has no local tty. 

因此,ssh -t jump_server ssh -t cisco_box ...

此外,您還可以通過proc_openexec在PHP中使用這樣的命令。然後你將得到PHP中執行的ssh的stdin,stdout和stderr(以及其他文件描述符),這樣你就可以向/從cisco框發送/接收命令和數據。

這取決於另一端的程序是否需要tty(其中-t強制執行)。像mc這樣的程序確實需要tty,但是大多數命令行工具不需要(然後簡單地省略-t)。

+0

如果這個想法有任何有效性,我怎麼能把它封裝在PHP中,然後發送命令並接收輸出。我很抱歉,但我覺得這個時候我有點模糊了。 –

+0

經過許多不成功的嘗試之後,我現在正在嘗試使用Python。我的新問題是在http://stackoverflow.com/questions/42557671/how-do-i-capture-password-prompt –

+0

嘗試simpe使用從shell,當它的工作,弄清楚如何從PHP調用它。 –

相關問題