У меня есть веб-страница, написанная на 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, вы можете передать обычную команду cli ssh через сеанс PHP ssh2.
ssh root@server1 ./script_to_execute_in_a_remote_server.sh attribute1 attribute2
Отправка этой команды скажет брандмауэру подключиться к server1, выполнить эту команду, а затем отключиться, как только это будет сделано.
Других решений пока нет …