OVH Cloud OVH Cloud

exec avec une commande ssh

2 réponses
Avatar
Doraj
Bonjour,

je souhaite lancer une exécution sur une machine (autre que le serveur
php) à l'intérieur d'une page php. Jusque là, tout semble simple.
La commande que je lance est du type
ssh -l login -i fichier_cle @IP "ma_commande"

je fais donc : exec("ssh -l login -i fichier_cle @IP \"ma_commande\"");

La commande s'exécute bien, c'est déjà ça...
Mais par contre, la connection ssh persiste à la fin de l'exécution de
la commande, ce qui n'est pas normal...

Si je mets cette commande dans un script, l'exécution du script à partir
d'un shell fonctionne parfaitement, mais l'appel de ce script à partir
d'une page php me redonne le même problème : la connection persiste, et
donc la page php est "bloquée" avant la fin

J'ai essayé avec passthru, system, exec et shell_exec, mais toutes ces
fonctions donnent le même résultat.


Si quelqu'un sait comment résoudre ou contourner ce problème, j'en
serait très heureux.

Doraj

2 réponses

Avatar
bibou
Doraj wrote:

Bonjour,

je souhaite lancer une exécution sur une machine (autre que le serveur
php) à l'intérieur d'une page php. Jusque là, tout semble simple.
La commande que je lance est du type
ssh -l login -i fichier_cle @IP "ma_commande"

je fais donc : exec("ssh -l login -i fichier_cle @IP "ma_commande"");

La commande s'exécute bien, c'est déjà ça...
Mais par contre, la connection ssh persiste à la fin de l'exécution de
la commande, ce qui n'est pas normal...

Je ne sais pas du tout si ca marche mais as tu essayé :

exec("ssh -l login -i fichier_cle @IP "ma_commande; exit"");

Avatar
Pascal Terjan
Doraj wrote:
Bonjour,

je fais donc : exec("ssh -l login -i fichier_cle @IP "ma_commande"");

La commande s'exécute bien, c'est déjà ça...
Mais par contre, la connection ssh persiste à la fin de l'exécution de
la commande, ce qui n'est pas normal...

Si je mets cette commande dans un script, l'exécution du script à partir
d'un shell fonctionne parfaitement, mais l'appel de ce script à partir
d'une page php me redonne le même problème : la connection persiste, et
donc la page php est "bloquée" avant la fin


Salut, ca marche bien chez moi :

$ php
<?php
$p = exec('ssh cmoi pwd');
echo "$pn";
?>
/home/pascal
$

J'ai cherché un peu mais je ne vois pas d'ou ca peut venir. Essayes de
lancer avec ssh -v en affichant tout ce qu'il te dit voir ou ca bloque :

$p=popen("/bin/bash", "w");
fputs($p,
"ssh -v -l login -i fichier_cle @IP "ma_commande"n");
while(!feof($p)) {
echo fread($p, 1024);
flush();
}
fclose($p);