У меня есть веб-страница, написанная на 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
Отправка этой команды будет сообщать брандмауэру о подключении к серверу1, выполнить эту команду, а затем отключиться после ее завершения.