Voici mon script:
<?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');
?>
Il montre l'erreur suivante:
Fatal error: Call to undefined function ssh2_connect() in /home/chaosnz/public_html/fotosnap.net/test.php on line 2
Comment puis-je gérer cela?
Merci
j'ai installé l'extension SSH2 PECL et tout fonctionne bien, merci à tous pour votre aide ...
Honnêtement, je recommanderais d'utiliser phpseclib, une implémentation de pure PHP SSH2 . Exemple:
<?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');
?>
C'est beaucoup plus portable, plus facile à utiliser et plus complet.
Vous devez installer ssh2 lib
Sudo apt-get install libssh2-php && Sudo /etc/init.d/Apache2 restart
cela devrait être suffisant pour vous mettre sur la route
Si vous utilisez un système Bomebrew sous OSX, j’ai utilisé les éléments suivants pour l’installer:
brew install php56-ssh2
Cela a fonctionné pour moi. Je l'ai tiré de ici . Ubuntu et OSX devraient également utiliser le port Mac.
J'ai résolu ceci sur Ubuntu 16.4 PHP 7.0.27-0 + deb9u et nginx
Sudo apt install php-ssh2
Pour développer @neubert answer, si vous utilisez Laravel 5 ou similaire, vous pouvez utiliser phpseclib beaucoup plus simplement comme ceci:
Exécuter composer require phpseclib/phpseclib ~2.0
Dans votre contrôleur, ajoutez
use phpseclib\Net\SSH2;
Puis utilisez-le dans une méthode de contrôleur telle que:
$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);
}
J'exécute CentOS 5.6 car mon environnement de développement et les suivants ont fonctionné pour moi.
su -
pecl install ssh2
echo "extension=ssh2.so" > /etc/php.d/ssh2.ini
/etc/init.d/httpd restart