如何连接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”)系统的用户名/密码。
答
你已经copied and pasted从手册中的例子没有明显阅读/理解什么ssh2_tunnel 确实。
你似乎期待ssh2_tunnel创建一个ssh连接 - 它没有。它创建一个原始的TCP套接字连接,通过现有的ssh连接进行隧道传输。
你真的有一个SSH端口12345监听服务器?
虽然有有时在ssh连接中隧道连接ssh连接的很好的理由,但这些都是非常不寻常的情况,没有证据表明它们适用于此。如果他们不适用,那么ssh内部的ssh效率非常低,您应该转发连接。我不确定你会怎么做,因为大多数ssh登录都会清除缓冲的输入,因此您需要轮询/响应提示。
您在向我们显示的代码中没有检查错误。您应该检查每个函数的返回值以检查它们是否成功。
+0
在这里,我只输入示例代码。为了安全起见,我没有给出原始代码。简单的事情是我想通过PHP代码连接Linux机器C.我可以连接B机器。有没有任何代码示例这个请参阅。 – selvan
您正在通过pubkey进行身份验证..您确定要求输入密码**或输入密码**吗?您确定您的pubkey甚至可以用于对特定服务器进行身份验证吗? – Mjh
对于我第一个使用用户名/密码的系统。另外我想给第二个系统的用户名/密码 – selvan
祝你好运排序你的问题。你需要的一切都在php.net上,请给它一个阅读。 – Mjh