SFTP
hallo zusammen,
ich muss per sftp (hat nichts zu tun mit ftp over ssl) eine datei
übertragen. habe mir dazu auch die secure shell2 functions angeschaut
aber leider arbeitet dort die dateiübertragung mit dem scp-protokoll
welches leider der empfänger-sftp nicht unterstützt.
als alternative dachte ich mir dann, einfach eine datei auf dem
empfänger-sftp zu erzeugen und so die inhalt so auszutauschen. leider
haut das auch nicht hin da ich folgenden fehler bei 'fopen' bekommen:
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp/testfile.txt", 'r');
fehler:
PHP Warning: fopen() [<a href='function.fopen'>function.fopen</a>]:
Unable to open ssh2.sftp://Resource id #4/testfile.txt on remote host...
hat jemand eine idee warum "$sftp" den wert "Resource id #4" hat und was
dies zu bedeuten hat?
oder kennt jemand eine sftp-lib für php?
danke und grüße aus frankfurt, paul
Re: SFTP
Paul Baumgart schrieb:
> habe mir dazu auch die secure shell2 functions angeschaut
Vorweg: Habe die Secure Shell2 Functions noch nie benutzt...
> ich muss per sftp eine datei übertragen.
>
> $connection = ssh2_connect('shell.example.com', 22);
> ssh2_auth_password($connection, 'username', 'password');
Das hat funktioniert? (Du überprüfst nicht auf "false".
> $sftp = ssh2_sftp($connection);
> $stream = fopen("ssh2.sftp://$sftp/testfile.txt", 'r');
>
> fehler:
> PHP Warning: fopen() [<a href='function.fopen'>function.fopen</a>]:
> Unable to open ssh2.sftp://Resource id #4/testfile.txt on remote host...
Gibt es denn die Datei "testfile.txt" im Homeverzeichnis (oder cwd) des
Users mit dem du dich anmeldest?
Gruß
Carsten
Re: SFTP
hi carsten,
also die verbindung wird erfolgreich hergestellt und ich kann z.b. per
erfolgreich "ssh2_sftp_mkdir" ein verzeichnis auf dem remote-sftp
erstellen. ich rufe "fopen" mit dem parameter "w" auf, sodass die datei
erstellt werden soll falls nicht vorhanden jedoch funktioniert dies nicht.
hier der quellcode:
$connection = ssh2_connect('xxx.xxx.xxx.xx', 22);
$reslog = ssh2_auth_password($connection, 'User', 'Pwd');
if ($reslog) {
$sftp = ssh2_sftp($connection);
//ssh2_sftp_mkdir($sftp, 'newTestDir');
$handle = fopen("ssh2.sftp://$sftp/testpaul.txt", "w");
fwrite($handle, "testpaule");
fclose($handle);
ssh2_exec($connection, 'exit');
}
fehler:
PHP Warning: fopen() [<a href='function.fopen'>function.fopen</a>]:
Unable to open ssh2.sftp://Resource id #4/testpaul.txt on remote host
da er schon beim öffnen der datei probleme bekommt kann er natürlich
keine daten reinschreiben....
das problem ist das aufrufen per fopen
(fopen("ssh2.sftp://$sftp/testpaul.txt")
interessanter weiße ist dies ein beispiel von php.net wie hier zu sehen:
http://de.php.net/manual/de/function.ssh2-sftp.php
frage ist halt ob dies eventuell mit einstellungen von apache oder der
php.ini zu tun hat. also vielleicht ein rechteproblem...
bin dankbar für jede hilfe.
grüße aus frankfurt, paul
> Paul Baumgart schrieb:
>
>> habe mir dazu auch die secure shell2 functions angeschaut
> Vorweg: Habe die Secure Shell2 Functions noch nie benutzt...
>
>
>> ich muss per sftp eine datei übertragen.
>>
>> $connection = ssh2_connect('shell.example.com', 22);
>> ssh2_auth_password($connection, 'username', 'password');
>
> Das hat funktioniert? (Du überprüfst nicht auf "false".
>
>> $sftp = ssh2_sftp($connection);
>> $stream = fopen("ssh2.sftp://$sftp/testfile.txt", 'r');
>>
>> fehler:
>> PHP Warning: fopen() [<a href='function.fopen'>function.fopen</a>]:
>> Unable to open ssh2.sftp://Resource id #4/testfile.txt on remote host...
>
> Gibt es denn die Datei "testfile.txt" im Homeverzeichnis (oder cwd) des
> Users mit dem du dich anmeldest?
Re: SFTP
Paul Baumgart wrote:
> also die verbindung wird erfolgreich hergestellt...
>
> $handle = fopen("ssh2.sftp://$sftp/testpaul.txt", "w");
>
> PHP Warning: fopen() [<a href='function.fopen'>function.fopen</a>]:
> Unable to open ssh2.sftp://Resource id #4/testpaul.txt on remote host
Nutz doch nur mal sicherheitshalber die voll qulifizierte URL zum
zugriff auf diese Resource. Wie die aufgebaut sein muß findest Du hier:
http://de.php.net/manual/de/wrappers.ssh2.php
Im Normalfall wird die Resourcekennung zwar automatisch von PHP durch
die jeweiligen Infos ersetzt, aber probiers halt mal.
Anmerkung:
Es wär nett wenn Du wie alle hier einen ordentlichen Zitierstil hättest.
Es nutzt keinen was wenn du alles geschrieben auf was Du antwortest als
Rattenschwanz anhängst.
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: SFTP
Paul Baumgart schrieb:
> also die verbindung wird erfolgreich hergestellt und ich kann z.b. per
> erfolgreich "ssh2_sftp_mkdir" ein verzeichnis auf dem remote-sftp
> erstellen. ich rufe "fopen" mit dem parameter "w" auf, sodass die datei
> erstellt werden soll falls nicht vorhanden jedoch funktioniert dies nicht.
Die deutsche Sprache kennt Groß- und Kleinschreibung sowie Satzzeichen.
Es wäre nett, wenn Du diese auch benutzen würdest. Das würde uns das
Lesen Deiner Beiträge deutlich erleichtern und die Chance auf eine
verwertbare Antwort deutlich erhöhen.
>> Paul Baumgart schrieb:
Auch Dein Zitierstil (TOFU = Text oben, Fullquote unten) ist nicht
gerade verständnisfördernd. http://learn.to/quote hilft Dir, es richtig
zu machen.
Gruß. Claus