Функция PHP ssh2_connect не работает

Ниже приводится мой сценарий:

<?php $connection = ssh2_connect('XX.XX.XX.XX', 22); ssh2_auth_password($connection, 'root', '******'); $stream = ssh2_exec($connection, 'useradd -d /home/users/test -m testftp'); $stream = ssh2_exec($connection, 'passwd testftp'); $stream = ssh2_exec($connection, 'password'); $stream = ssh2_exec($connection, 'password'); ?> 

Он показывает следующую ошибку:

 Fatal error: Call to undefined function ssh2_connect() in /home/chaosnz/public_html/fotosnap.net/test.php on line 2 

Как я могу справиться с этим?

благодаря

Честно говоря, я бы рекомендовал использовать phpseclib, чистую реализацию PHP SSH2 . Пример:

 <?php include('Net/SSH2.php'); $ssh = new Net_SSH2('www.domain.tld'); if (!$ssh->login('username', 'password')) { exit('Login Failed'); } echo $ssh->exec('pwd'); echo $ssh->exec('ls -la'); ?> в <?php include('Net/SSH2.php'); $ssh = new Net_SSH2('www.domain.tld'); if (!$ssh->login('username', 'password')) { exit('Login Failed'); } echo $ssh->exec('pwd'); echo $ssh->exec('ls -la'); ?> 

Это тонна более портативная, удобная в использовании и более функциональная.

Я установил расширение SSH2 PECL, и он отлично работает благодаря всем вам за помощь …

Если вы используете bomebrew в OSX, для его установки я использовал следующее:

 brew install php56-ssh2 

Это сработало для меня. Я вытащил его отсюда . Также должны быть Ubuntu и OSX с использованием порта Mac.

Вам нужно установить ssh2 lib

sudo apt-get install libssh2-php && sudo /etc/init.d/apache2 restart

этого должно быть достаточно, чтобы доставить вас в дорогу

Я запускаю CentOS 5.6 в качестве среды разработки, и для меня это работало.

 su - pecl install ssh2 echo "extension=ssh2.so" > /etc/php.d/ssh2.ini /etc/init.d/httpd restart 

Чтобы расширить ответ @neubert, если вы используете Laravel 5 или аналогичный, вы можете использовать phpseclib гораздо проще:

Для запуска composer require phpseclib/phpseclib ~2.0

В контроллере добавьте

use phpseclib\Net\SSH2;

Затем используйте его в методе контроллера, например:

  $host = config('ssh.host'); $username = config('ssh.username'); $password = config('ssh.password'); $command = 'php version'; $ssh = new SSH2($host); if (!$ssh->login($username, $password)) { $output ='Login Failed'; } else{ $output = $ssh->exec($command); }