我想从Web主机ssh主机A,并通过PHP中的libssh2-php包从主机A ssh主机B.
有可能吗?
我知道执行一个ssh connect的包libssh2-php。
像这样:
在网络主机中连接到hostA。
$conn = ssh2_connect($hostA, $portA);
但我想从hostA连接到hostB。
请帮帮我。
答案 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"。