ssh2_connect ssh2 lib instalar php ssh

lib - La función PHP ssh2_connect no funciona



ssh2 pecl (7)

Lo siguiente es mi guion:

<?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''); ?>

Muestra el siguiente error:

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

¿Cómo puedo lidiar con esto?

Gracias


Estoy ejecutando CentOS 5.6 como mi entorno de desarrollo y lo siguiente funcionó para mí.

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


He instalado la extensión SSH2 PECL y funciona bien gracias a todos por su ayuda ...


Honestamente, recomendaría usar phpseclib, una implementación pura de PHP SSH2 . Ejemplo:

<?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''); ?>

Es mucho más portátil, más fácil de usar y más funciones también.


Lo he resuelto en ubuntu 16.4 PHP 7.0.27-0 + deb9u y nginx

sudo apt install php-ssh2


Necesita instalar ssh2 lib

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

eso debería ser suficiente para llevarte a la carretera


Para ampliar la respuesta de @neubert, si está usando Laravel 5 o similar, puede usar phpseclib de esta manera:

Ejecutar composer require phpseclib/phpseclib ~2.0

En tu controlador agrega

use phpseclib/Net/SSH2;

Luego utilícelo en un método de control como:

$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); }


Si está ejecutando un bomebrew en OSX, utilicé lo siguiente para instalarlo:

brew install php56-ssh2

Eso funcionó para mí. Lo saqué de aquí . También debería haber Ubuntu y OSX usando el puerto mac también.