我有一个用PHP编写的网页,我试图对远程服务器执行一系列命令。当运行这些命令时,我需要在另一台机器上运行它们,这样我就可以通过防火墙。
我可以寻找的大致思路是,在远程服务器上执行这个的输出
foreach ($filter as $filtered) {
echo './script_to_execute_in_a_remote_server '.$filtered
}
所以,举例来说,我将在远程服务器上执行以下内容。
./script_to_execute_in_a_remote_server.sh attribute1 attribute2
而我使用SSH连接到中间服务器,连接到防火墙上。
ssh root@firewall;
在那里,我使用SSH连接到远程服务器(这次是从防火墙)。
ssh root@server1;
而一旦我最终通过SSH连接到远程服务器,这时我就会执行之前打印出来的命令。
./script_to_execute_in_a_remote_server.sh attribute1 attribute2
我可以用什么方法做到这一点?
一旦你通过php ssh2连接到防火墙,你就可以通过PHP ssh2会话传递一个普通的cli ssh命令。
ssh root@server1 ./script_to_execute_in_a_remote_server.sh attribute1 attribute2
发送这个命令会告诉防火墙连接到server1,执行这个命令,然后完成后断开连接。