ssh over ssh

Горбушка

Ищу её...
Регистрация
2 Май 2008
Сообщения
3.444
Реакции
2.524
Всем привет!

Есть сервер, который доступен по ssh, с него доступен другой сервер по ssh.
Необходимо из PHP выполнить команду на втором сервере.

Т.е. подключаем ssh до первого сервера и внутри этой сессии подключаемся к следующему.

Желательно не через exec :)
 
Тупо через phpseclib подключиться к серверу #1 и выполнить команду

$ssh->exec('php /script_connent_and_exec_command_for_server_2.php");

Где скрипт script_connent_and_exec_command_for_server_2.php это скрипт который опять же через phpseclib приконекчивается и выполняет команду на втором сервере.
 
Сам не юзал, но попробуй для начало родное, так сказать
Для просмотра ссылки Войди или Зарегистрируйся (тут я специально на комент сделал, не плохо реализовано)
Для просмотра ссылки Войди или Зарегистрируйся - тут попроще
Для просмотра ссылки Войди или Зарегистрируйся - тут через стороннию либу, тоже красиво выглядит
 
Где скрипт script_connent_and_exec_command_for_server_2.php это скрипт который опять же через phpseclib приконекчивается и выполняет команду на втором сервере.
На втором сервере нет PHP :) Список команд произвольный.
Это для ci/cd надо...

@borodatych - это только на 1 уровень, а мне надо ssh внутри ssh )
 
На втором сервере нет PHP :) Список команд произвольный.
На втором или на промежуточном сервере? Если на промежуточном - ну через phpseclib выполняешь команду не вызова пхп, а подключения по ssh $ssh->exec('ssh root@serv");
, если не делал ключ, отправляешь следующей командой пароль, вроде phpseclib умеет вводить. Потом шлёшь свои команды. Если делал ключ - тупо сразу шлёшь свои команды вместе с логином
 
@KillDead, эээээ... Ты сейчас повесил мне мозг )
Если оно реально так работает - это то, что нужно!

Я правильно понял, что речь о Для просмотра ссылки Войди или Зарегистрируйся ?
 
PHP:
use phpseclib\Net\SSH2;

$ssh = new SSH2('server1');
if (!$ssh->login('login', 'pass')) {
    exit('Login Failed');
}
echo $ssh->write("ssh login@server2\n");
echo $ssh->read();
$ssh->write("pass\n");
echo $ssh->read();
УРА! Я получил что хотел :)

@KillDead красава!
 
Назад
Сверху