如何连接PHP中的中级ssh服务器连接

如何连接PHP中的中级ssh服务器连接

问题描述:

如何通过中间服务器从PHP连接linux服务器。如何连接PHP中的中级ssh服务器连接

本地计算机(A) - >中间服务器(Linux机器)(B) - > Linux计算机(C)

我想连接A-> B,则B-> C系。 我已经使用下面的代码。

$connection = ssh2_connect('121.2.3.11', 22); // 
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa'); // (B) system connection 

$tunnel = ssh2_tunnel($connection, '121.2.3.12', 12345); // (C) system connection 

在这里,在哪里给C(“121.2.3.12”)系统的用户名/密码。

+0

您正在通过pubkey进行身份验证..您确定要求输入密码**或输入密码**吗?您确定您的pubkey甚至可以用于对特定服务器进行身份验证吗? – Mjh

+0

对于我第一个使用用户名/密码的系统。另外我想给第二个系统的用户名/密码 – selvan

+1

祝你好运排序你的问题。你需要的一切都在php.net上,请给它一个阅读。 – Mjh

你已经copied and pasted从手册中的例子没有明显阅读/理解什么ssh2_tunnel 确实

你似乎期待ssh2_tunnel创建一个ssh连接 - 它没有。它创建一个原始的TCP套接字连接,通过现有的ssh连接进行隧道传输。

你真的有一个SSH端口12345监听服务器?

虽然有有时在ssh连接中隧道连接ssh连接的很好的理由,但这些都是非常不寻常的情况,没有证据表明它们适用于此。如果他们不适用,那么ssh内部的ssh效率非常低,您应该转发连接。我不确定你会怎么做,因为大多数ssh登录都会清除缓冲的输入,因此您需要轮询/响应提示。

您在向我们显示的代码中没有检查错误。您应该检查每个函数的返回值以检查它们是否成功。

+0

在这里,我只输入示例代码。为了安全起见,我没有给出原始代码。简单的事情是我想通过PHP代码连接Linux机器C.我可以连接B机器。有没有任何代码示例这个请参阅。 – selvan