Page 1 sur 1

Commande SSH2 via un fichier PHP

Posté : 16 août 2016, 17:55
par azizss
Bonjour,

Je cherche via le SSH2 a me connecter et a écrire dans mon crontab en passant via un fichier php.

exemple :

Code : Tout sélectionner

<?php include('./config/phpseclib/Net/SSH2.php'); $connection = ssh2_connect('IP serveur'); if (ssh2_auth_password($connection, 'user', 'mots de passe')) { echo "Authentication Successful!\n"; [b]echo $ssh->exec('pwd'); echo $ssh->exec('ls -la');[/b] } else { die('Authentication Failed...'); } ?>
C'est un test cela :

Il me dit bien que je suis connecter mais n’exécute pas mon code de test en gras.

j'ai cette erreur
Authentication Successful! Fatal error: Call to a member function exec() on a non-object in ....... on line 11

Pouvez-vous me dire comment faire pour déjà exécuter des commande via mon fichier PHP.

Merci de votre aide,

Re: Commande SSH2 via un fichier PHP

Posté : 16 août 2016, 19:41
par Naroth
Bonjour,

Je ne connais pas du tout la classe que tu utilises mais :

1. Ta variable ssh sort d'où ?
2. C'est la variable connection que tu initialise... pas ssh

Re: Commande SSH2 via un fichier PHP

Posté : 16 août 2016, 19:42
par or 1
$connection = ssh2_connect('IP serveur');
$ssh->exec('pwd');
d'où ce message d'erreur très logique.

Re: Commande SSH2 via un fichier PHP

Posté : 17 août 2016, 09:26
par azizss
Bonjour,

C'est un script récupérer sur le net, quant je modifie le mots de passe il me remonte une erreur, mais je vient de faire un test avec la commande

last -n 10

et là pas de connexion de mon fichier php, pouvez-vous m'aidez.

je cherche a me connecter en SSH2 avec des commande pour écrire dans mon crontab.
Y-a-t-il une scripte a utiliser ?

Merci de votre aide.

Re: Commande SSH2 via un fichier PHP

Posté : 17 août 2016, 10:18
par WENKz
<?php
$login = "sshUser";
$password = "tIoeK38k_3J$";
 
$connection = ssh2_connect('200.XXX.XXX.XXX', '22');
ssh2_auth_password($connection, $login, $password);
$stream = ssh2_exec($connection, 'ls -la'); 
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);
?>

Re: Commande SSH2 via un fichier PHP

Posté : 18 août 2016, 09:11
par azizss
Bonjour,

Merci de votre aide,

J'arrive a me connecter et a remplir un fichier, mais je dois utiliser SSH2 pour me connecter a CRONTAB pour remplir le fichier.
Pour cela je fait

Code : Tout sélectionner

crontab -l | sed -e '0 9 * * 6 /usr/bin/php /home/www/site_exemple/site/page.php' | crontab -
Pouvez-vous m'aider pour écrire cette commande.
J'utilise le code de WENKz, et essayer d'autre mais celui là est le plus simple.

Code : Tout sélectionner

<?php $login = "test"; $password = "12345"; $connection = ssh2_connect('00.00.00.00', '22'); ssh2_auth_password($connection, $login, $password); $stream = ssh2_exec($connection, 'crontab -l | sed -e '0 9 * * 6 /usr/bin/php /home/www/site_exemple/site/page.php' | crontab -'); stream_set_blocking($stream, true); $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO); echo stream_get_contents($stream_out); ?>
J'ai cette erreur 'Parse error: syntax error, unexpected '0' (T_LNUMBER)'

Merci a vous de votre aide,

Re: Commande SSH2 via un fichier PHP

Posté : 18 août 2016, 09:45
par @rthur
Tu as un problème de guillemets qui te font fermer ta chaine de caractères au milieu de ta commande d'où le message d'erreur.
C'est assez visible avec la coloration syntaxique.

La solution est d'utiliser des guillemets doubles " à l'extérieur et des simples à l'intérieur '

Code : Tout sélectionner

"crontab -l | sed -e '0 9 * * 6 /usr/bin/php /home/www/site_exemple/site/page.php' | crontab -"

Re: Commande SSH2 via un fichier PHP

Posté : 18 août 2016, 10:43
par azizss
Merci,

Je vient de faire le teste plus d'erreur mais rien ne s’écrie dans mon fichier CRONTAB.
Quant le tape en ligne de commande

crontab -e le fichier s'ouvre est j'ai rien décris.

voilà le code

Code : Tout sélectionner

<?php $login = "root"; $password = "12345"; $connection = ssh2_connect('00.00.00.00', '22'); ssh2_auth_password($connection, $login, $password); $stream = ssh2_exec($connection, "crontab -l | sed -e '0 9 * * 6 /usr/bin/php /home/www/site_exemple/site/page.php' | crontab -"); stream_set_blocking($stream, true); $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO); echo stream_get_contents($stream_out); ?>
je comprend pas , n'arrive pas a écrire dans un fichier avec sed.

Re: Commande SSH2 via un fichier PHP

Posté : 19 août 2016, 09:05
par azizss
Bonjour,

Avez-vous une idée pour pouvoir faire cela, je ne trouve rien.

Merci de votre aide,

Re: Commande SSH2 via un fichier PHP

Posté : 19 août 2016, 19:16
par Naroth
Bonjour,

Il manquerait pas le "-e" sur ta commande ?

Code : Tout sélectionner

crontab -l | sed -e '0 9 * * 6 /usr/bin/php /home/www/site_exemple/site/page.php' | crontab -e