Как в PHP подключиться по ssh к серверу


Оставлю небошьшую заметку о том, как можно подключиться к удаленному серверу в php, вызвать команду и отобразить результаты на экране.

В приведенном примере используется авторизация с помощью приватного ключа:

function ssh_exec($ip, $command) {
$connection = ssh2_connect($ip, 22);
if (ssh2_auth_pubkey_file($connection, 'remote_user', '/home/remote_user/.ssh/id_rsa.pub', '/home/remote_user/.ssh/id_rsa')) {
     $stream = ssh2_exec($connection, $command);
     stream_set_blocking($stream, true);
     $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
     echo "<pre>Results :\n";
     echo stream_get_contents($stream_out)."</pre>";
     fclose($stream);
  } else {
     die('Public Key Authentication Failed');
  }
}

Для авторизации с паролем используйте:

ssh2_auth_password($connection, 'remote_user', 'password');

Вызывается эта функия вот так:

<?php
ssh_exec('192.168.1.19', 'df -h');
?>
Share Button
(Visited 1 802 times, 1 visits today)

2 комментария на «“Как в PHP подключиться по ssh к серверу”»

    • Попробуйте поискать на php.net и stackoverflow.com. Мне не приходилось соединяться через прокси.

      Можно проверить сработает ли подключение, если в файл .bashrc пользователя, под которым выполняется php, добавить

      export http_proxy=http://proxy.com:8080

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *