2017-03-01 82 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调用它。 –

相关问题