Статистика

Участников проекта 105
Опубликовано статей 78
Отчет по карме. Топ 20

Новости блога

1 29.11.2013  Сегодня самым активным участникам newblog'а был выплачен доход с sape.
7 02.11.2012  Ура! Свешилось, нашему сайту дали тИЦ 10. Спасибо всем кто принимает участие в развитии нашего блога.
8 21.08.2012  Интеграция с sape.ru. Теперь каждый автор статей на newblog автоматически зарабатывает на рекламе.
Все новости

Топ 5 категорий

Программирование 46
Операционные системы 9
Базы данных 4
Туризм 2
Заметки 2

Последние 5 заметок (90)

gullyar - Закладки gullyar
gullyar - Ваша первая закладка
osadchaya - Закладки osadchaya
Ira0231188 - Закладки Ira0231188
Ira0231188 - Закладки Ira0231188

Ссылки

www.freedev.asia
Дорофеева, Красова: Итальянский язык. Второй иностранный язык. 5 класс. Рабочая тетрадь №1. ФГОС

Как из php подключиться по ssh2 и выполнить произвольную команду

19.09.2011 19:50 | Просмотров: 7796 | Доход: 108.2 руб. | Комментариев: 0
[Программирование] 
Рейтинг: 0/0

Иногда удобно использовать ssh2 протокол прямо в php скриптах. Для начала нам необходимо подключить библиотеку libssh2, вы можете это сделать прямо из репозитория (в linux debian это делается так: apt-get install libssh2).

Для подключения используется функция:

$con = ssh2_connect([ip],[port]);
где [ip] -  адрес, к которому хотим подключиться.
[port] - по какому порту происходит подключение, обычно это 22 порт
Для авторизации:
 
ssh2_auth_password($con,[user],[password]);
где [user] - логин     [password] - пароль
Чтобы выполнить команду: 
ssh2_exec($con, [command])
 где [command] - и есть выполняемая команда.

 Для удобства можно создать вот такую функцию:

                                                                                                                                                                                                              

function __exec_ssh ($con,$command){
  if (!$st = ssh2_exec($con, $command)){
    die ("error : ".$command);
  }else{
     stream_set_blocking($st, true);
     $data = "";
      while($o = fgets($st)){
         $data .= $o;
       }
       fclose($st);
     }
     return $data;
  }
Небольшой пример:
к примеру вы хотите подключиться к удаленному серверу и сделать бэкап базы данных mysql
<?php
function __exec_ssh ($con,$command){
  if (!$st = ssh2_exec($con, $command)){
    die ("error : ".$command);
  }else{
     stream_set_blocking($st, true);
     $data = "";
      while($o = fgets($st)){
         $data .= $o;
       }
       fclose($st);
     }
     return $data;
  }
$con = ssh2_connect('10.10.10.10',22);
  if($con){
    ssh2_auth_password($con,'root','123');
    ssh2_exec($con, '/usr/bin/mysqldump -uroot -p123 db > db.sql');
  }
?>

 

ip и пароли вымышленные :)

© developer
| Комментировать статью |