PHP CURL SFTP Keine Daten erhalten

JavaBeginner

Ensign
Registriert
Juli 2015
Beiträge
142
Hallo, ich habe folgendes Problem, ich möchte Dateicontent über SFTP von Servern bekommen (Root01 und Root02). Es ist mir möglich die Datei von Root01 zu bekommen jedoch bekommt ich keine Daten von Root02. Es gibt mir rein gar nichts zurück. Ich habe ehrlich gesagt keine Ahnung woran das liegen könnte. Mein Code Schnipsel um den Content der Dateien zu bekommen:
Code:
	$curl  = curl_init($configuri);
	curl_setopt($curl , CURLOPT_PORT, $sftpport);
	curl_setopt($curl , CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
	curl_setopt($curl ,  CURLOPT_RETURNTRANSFER, 1);
	$content = curl_exec($curl );
	$handle = file_put_contents($file, $content);
	curl_close($curl );
	echo($content);
	$text = file_get_contents ($file);

Jemand eine Idee woran das liegen kann?
 
Ist denn root02 korrekt per SFTP erreichbar? Ist der Host-Key von root02 bereits in der known_hosts von deinem System, dass den Code ausführt? Sprich klappt problemlos eine manuelle Anmeldung?
 
snaxilian schrieb:
Ist denn root02 korrekt per SFTP erreichbar? Ist der Host-Key von root02 bereits in der known_hosts von deinem System, dass den Code ausführt? Sprich klappt problemlos eine manuelle Anmeldung?

Ich habe mir den auth.log mal genauer angeschaut von root02 und es scheint das keine Verbindung zustande kommt. Mir ist es jedoch möglich manuell auf den SFTP zu kommen mit den gleichen Daten.
 
läuft der Aufruf des Scripts bzw der Curl-Befehl in Kontext eines anderen Benutzers? Kennt dieser User auch den Host Key von root02? Tippfehler bei Benutzername oder Kennwort?
Ruf halt Zeile für Zeile im Kontext des ausführenden Users die Befehle auf, dann siehst du, wo es hakt.

Warum man für den SFTP Abruf so viel curl benötigt, wird uns vermutlich ein Rätsel bleiben wo PHP doch bereits fertige Funktionen für SFTP mit bringt... https://secure.php.net/manual/de/function.ssh2-sftp.php bzw scp_recv oder scp_send wären auch ne Option.
 
snaxilian schrieb:
läuft der Aufruf des Scripts bzw der Curl-Befehl in Kontext eines anderen Benutzers? Kennt dieser User auch den Host Key von root02? Tippfehler bei Benutzername oder Kennwort?
Ruf halt Zeile für Zeile im Kontext des ausführenden Users die Befehle auf, dann siehst du, wo es hakt.

Warum man für den SFTP Abruf so viel curl benötigt, wird uns vermutlich ein Rätsel bleiben wo PHP doch bereits fertige Funktionen für SFTP mit bringt... https://secure.php.net/manual/de/function.ssh2-sftp.php bzw scp_recv oder scp_send wären auch ne Option.

Es scheint so das es nicht am Code sondern am Server liegt. Habe das auf einem dritten Server probiert und dort lief es ebenfalls einwandfrei. Hättest du vielleicht eine Idee weshalb es auf diesem einen Server nicht geht? Es ist mir möglich normal über SSH und SFTP auf den Server zu verbinden aber über CURL findet anscheinend keine Authentifizierung statt.
 
Client per SSH & SFTP auf root02 > ok
Client per Curl auf root02 > nicht ok

Dann bedeutet dies: Curl-Aufruf klappt nicht, der Server an sich ist ja erreichbar.
Daher also die o.g. Fragen: Laufen manueller Aufruf und Script unter anderen Usern? An welcher Stelle im Script hakt es? Hast ggf. Sonderzeichen im Kennwort, die nicht korrekt escapt wurden?
Wenn es problemlos zu root01 und root03 klappt aber nicht zu root02 dann vergleiche die Configs der drei Server. 01 und 03 sollten ja identisch sein und root02 eine Abweichung haben. Prüfe daher: Die Config des SSHd, der Host-Firewall, der Berechtigungen der Benutzer auf den drei Servern und der Shares auf die zugegriffen werden soll.
 
Hilft dem TE aber nicht.. Er greift ja von einem Client auf mehrere Server zu und nur zu einem Server klappt die Verbindung nicht. Bei fehlendem SFTP Support müsste die Verbindung ja zu allen Servern fehlschlagen...
 
Meinen dank an alle die geholfen haben. Es lag unerwateterweise am Passwort.
 
Zurück
Oben