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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
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