通过php ssh多个主机(主机B通过主机A)

时间:2015-09-02 03:03:46

标签: php ssh

我想从Web主机ssh主机A,并通过PHP中的libssh2-php包从主机A ssh主机B.

有可能吗?

我知道执行一个ssh connect的包libssh2-php。

像这样:

在网络主机中连接到hostA。

$conn = ssh2_connect($hostA, $portA);

但我想从hostA连接到hostB。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

PHP libssh2库支持连接隧道,请参阅ssh2_tunnel function

resource ssh2_tunnel ( resource $session , string $host , int $port )

但该函数确实返回了套接字流。我担心没有办法将该套接字流绑定回libssh2以在其上运行另一个SSH会话。

所以我的结论是,在PHP中没有本地方法(使用libssh2)。

您可以从PHP运行命令行ssh。为此,您必须设置某种自动登录。你会在网上找到很多资源。

您可以在"主机B"上设置一个特殊的私钥。允许仅执行所需的指令(使用command中的authorized_keys指令)。然后,将未加密的密钥存储在"主机A"。

在PHP中,使用ssh2_exec从"主机A"执行命令行ssh。使用私钥,执行"主机B"。

上的指令