Probleme SFTP (ssh2)

Petit nouveau ! | 6 Messages

01 mars 2010, 22:25

Bonjour à tous,

Je viens vers vous car je suis totalement perdu et j'espère pouvoir me retrouver grâce à vous :).
Je vous explique brièvement :
Tout d'abord, et avant de me lancer dans les explications, j'ai bien sûr tenté de me connecter au SFTP via Filezilla client et cela fonctionne très bien. Je peux récupérer les fichier en local et en déposer.

Le problème :
J'essaye depuis peu d'établir une connexion sur un FTP sécurisé en SSH2 via un script php dont le but final sera de transférer un fichier vers un autre FTP.
J'ai donc récupéré un petit bout de script pour tenter, sans envoi ni récupération de fichier, de lister les répertoires sauf que là je bloque. Voici le bout de code que je tente de faire fonctionner :

Code : Tout sélectionner

if (!function_exists("ssh2_connect")) die("function ssh2_connect n'existe pas"); // log in serveur if(!($con = ssh2_connect($ip, $port))){ echo "erreur: impossible d'établir une connexion\n"; } else { // tentative de connexion if(!ssh2_auth_password($con, $login, $mdp)) { echo "erreur : impossible de s'authentifier\n"; } else { // c'est bon on est dedans ! echo "okay : loggué...\n"; //on tente l'execution d'une commande if(!($stream = ssh2_exec($con, "ls -al" )) ){ echo "erreur : impossible d'executer une commande\n"; } else{ //on récup les données stream_set_blocking( $stream, true ); $data = ""; while( $buf = fread($stream,4096) ){ $data .= $buf; } fclose($stream); } } }
Quand j'exécute ce script, celui-ci tourne en boucle sans rien me renvoyer à l'écran, pas même une erreur.

Dès lors que je retire l'exécution de commande comme suit :

Code : Tout sélectionner

if (!function_exists("ssh2_connect")) die("function ssh2_connect n'existe pas"); // log in serveur if(!($con = ssh2_connect($ip, $port))){ echo "erreur: impossible d'établir une connexion\n"; } else { // tentative de connexion if(!ssh2_auth_password($con, $login, $mdp)) { echo "erreur : impossible de s'authentifier\n"; } else { // c'est bon on est dedans ! echo "okay : loggué...\n"; } }
La connexion s'établie (visiblement) car le script me renvoie bien "okay : loggué...".

Quand je tente de faire un ssh2_scp_send(), je me retrouve dans le cas du script qui tourne en boucle. Hormis la connexion au SFTP j'ai comme l'impression que je ne peux rien faire.

Si vous avez une piste de réflexion je suis totalement preneur car là je sèche. J'ai regardé un peu partout sur le net sans trouver de réponse précise et surtout... aucune solution !

J'attends vos avis, merci d'avance :)