Как в 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');
?>

Tags:

Categories:

Updated: