如何通过中间服务器从 PHP 连接 linux 服务器。
本地机器(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 连接进行隧道传输。
你真的有一个监听 12345 端口的 ssh 服务器吗?
虽然有时有充分的理由在 ssh 连接中建立 ssh 连接,但这些都是非常不寻常的情况,没有证据表明它们适用于此。如果它们不适用,那么 ssh 内的 ssh 效率非常低,您应该改为中继连接。我不确定你会怎么做,因为大多数 ssh 登录都会清除缓冲的输入,所以你需要轮询/响应提示。
您向我们展示的代码中没有错误检查。您应该检查每个函数的返回值以检查它们是否成功。
关于php - 如何在 PHP 中连接中间 ssh 服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792257/