Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过SSH隧道远程连接到XenServer VNC控制台_Php_Ssh_Xen_Vnc Viewer - Fatal编程技术网

Php 通过SSH隧道远程连接到XenServer VNC控制台

Php 通过SSH隧道远程连接到XenServer VNC控制台,php,ssh,xen,vnc-viewer,Php,Ssh,Xen,Vnc Viewer,我正在尝试从PHP/HTML网页连接到XenServer VM控制台 VNC控制台仅接受来自本地主机的连接,每个控制台使用不同的端口590259035904,等等 遵循概述的说明 例如,我可以使用Putty打开SSH隧道,然后转发端口5902来连接控制台。然后,我可以使用VNC客户机和localhost:5902进行连接 我现在正试图通过一个网页找到一种方法来做到这一点 如果我在我的电脑上通过putty设置隧道,然后使用通过网站加载的TightVNC java小程序,我可以连接到控制台 我的电脑

我正在尝试从PHP/HTML网页连接到XenServer VM控制台

VNC控制台仅接受来自本地主机的连接,每个控制台使用不同的端口590259035904,等等

遵循概述的说明

例如,我可以使用Putty打开SSH隧道,然后转发端口5902来连接控制台。然后,我可以使用VNC客户机和localhost:5902进行连接

我现在正试图通过一个网页找到一种方法来做到这一点

如果我在我的电脑上通过putty设置隧道,然后使用通过网站加载的TightVNC java小程序,我可以连接到控制台

我的电脑-192.168.0.3 apache-192.168.0.200 XenServer-192.168.0.100 我的电脑->SSH隧道->XenServer

VNC-client192.168.0.3->localhost:5902按钮隧道-> VNC-console192.168.0.100:5902

我需要一种以编程方式完成这项工作的方法

我已经安装了ssh2扩展,并尝试了以下方法:

$connection = ssh2_connect("192.168.0.100", 22);
if(ssh2_auth_password($connection, "user", "password"))
{
    if ($tunnel = ssh2_tunnel($connection, "127.0.0.1", 5902))
    {
        echo "Tunnel creation complete.\n";
    }else{
        echo "Tunnel creation failed.\n";
    }
} 
else
{
    echo "failed!";
}

<applet archive="tightvnc-jviewer.jar"code="com.glavsoft.viewer.Viewer" width="1" height="1">
    <param name="Host" value="localhost" /> 
    <param name="Port" value="5902" /> 
    <param name="OpenNewWindow" value="yes" />
    <param name="ShowControls" value="yes" />
    <param name="ViewOnly" value="no" />
    <param name="AllowClipboardTransfer" value="yes" />
    <param name="RemoteCharset" value="standard" /> 
    <param name="ShareDesktop" value="yes" /> 
    <param name="AllowCopyRect" value="yes" /> 
    <param name="Encoding" value="Tight" /> 
    <param name="CompressionLevel" value="" /> 
    <param name="JpegImageQuality" value="" /> 
    <param name="LocalPointer" value="On" /> 
    <param name="ConvertToASCII" value="no" /> 
    <param name="colorDepth" value="" /> 
    <param name="ScalingFactor" value="100" /> 
    <param name="AllowAppletInteractiveConnections" value="no" />
</applet>

因此,我的主要问题是如何使用小程序从网页进入这些VNC控制台?

我认为您不能。不使用libssh2。也许您可以执行exec或其他操作,但是由ssh2_tunnel创建的隧道不会持久。PHP脚本完成后,隧道将停止执行。