Ich bin auf viele PHP-Skripte für Web-FTP-Clients gestoßen. Ich muss einen SFTP-Client als Webanwendung in PHP implementieren. Unterstützt PHP fot SFTP? Ich konnte keine Samples finden. Kann mir jemand dabei helfen?Wie SFTP mit PHP?
Antwort
PHP hat ssh2 stream wrappers (standardmäßig deaktiviert), so dass Sie sftp-Verbindungen mit jeder Funktion verwenden können, die Stream-Wrapper unterstützt, indem Sie ssh2.sftp://
für das Protokoll verwenden, z.
file_get_contents('ssh2.sftp://user:[email protected]:22/path/to/filename');
oder - wenn auch mit ssh2 extension
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
Siehe http://php.net/manual/en/wrappers.ssh2.php
Auf einer Seite zur Kenntnis, gibt es auch eine ganze Reihe von Fragen zu diesem Thema bereits:
Die ssh2-Funktionen sind nicht sehr gut. Sie sind schwer zu benutzen und noch schwerer zu installieren. Die Verwendung garantiert Ihnen, dass Ihr Code keine Portabilität hat. Meine Empfehlung wäre, phpseclib, a pure PHP SFTP implementation zu verwenden.
unterstützt nur SFTP v3 – Blacksonic
@indranama würden Sie dies als die richtige Antwort markieren, so dass zukünftige Benutzer nicht Kommentare lesen müssen, um herauszufinden, welche für Sie am besten funktioniert? –
Ich führte einen Full-on-Cop-Out durch und schrieb eine Klasse, die eine Batch-Datei erstellt und dann sftp
über einen system
Aufruf aufruft. Nicht die beste (oder schnellste) Art, es zu tun, aber es funktioniert für das, was ich brauche, und es erforderte keine Installation zusätzlicher Bibliotheken oder Erweiterungen in PHP.
könnte den Weg zu gehen, wenn Sie die ssh2
Erweiterungen
verwandten Thread, der mir geholfen hat: https://groups.google.com/forum/#!topic/comp.security.ssh/_55TdDdUTCw – Quamis
fand ich nicht benutzen wollen, dass „phpseclib“ sollten Sie mit diesem (SFTP und viele weitere Features) helfen. http://phpseclib.sourceforge.net/
Um die Datei auf dem Server Legen Sie, rufen Sie einfach (Code-Beispiel aus http://phpseclib.sourceforge.net/sftp/examples.html#put)
<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
// puts a three-byte file named filename.remote on the SFTP server
$sftp->put('filename.remote', 'xxx');
// puts an x-byte file named filename.remote on the SFTP server,
// where x is the size of filename.local
$sftp->put('filename.remote', 'filename.local', NET_SFTP_LOCAL_FILE);
Die Git-Repo ist hier: https://github.com/phpseclib/phpseclib/tree/master/phpseclib – relipse
Wenn Sie die SSH2-Erweiterung für PHP nutzen kann ich diese schlage vor, Check-out:
Monsta FTP bietet SFTP/SCP sowie normales FTP über einen webbasierten Client, der kostenlos heruntergeladen werden kann. (Disclaimer: Ich bin an diesem Projekt beteiligt)
wie verhält sich das? Ist Monsta eine PHP-Bibliothek für Entwickler? – Brian
- 1. Verbinden von PHP mit SFTP mit phpseclib
- 2. SFTP von innerhalb von PHP
- 3. paramiko sshclient mit sftp
- 4. Mocking SFTP mit MUNIT
- 5. SFTP Verzeichnis
- 6. PHP-Download von Remote-Server über sftp
- 7. Wie rekursive in sftp
- 8. sftp mit ftplib
- 9. Proxy Details mit SFTP Befehl
- 10. sftp funktioniert nicht mit expect
- 11. 'Put' in SFTP mit PAramiko
- 12. Wie Skript sftp mit PSFTP.exe mit privaten und öffentlichen Schlüssel
- 13. Apache MINA SFTP Beispiel
- 14. SFTP-Bibliotheken für .NET
- 15. Visual Studio + explore sftp
- 16. Facing Azure Storage Blob mit sFTP-Dienst
- 17. Datei über SFTP mit Python hochladen
- 18. SFTP mit VB.NET - Upload über Server Ausgabe
- 19. SFTP C++ Bibliothek?
- 20. Python SSH/SFTP Modul?
- 21. automatisieren sftp Upload-Prozess
- 22. SFTP-Bibliothek für .NET?
- 23. SFTP-Datei hochladen
- 24. Spring SFTP lesen Dateisperre
- 25. Linux Wie starte ich "sftp-server"?
- 26. paramiko sftp Serververbindung gelöscht
- 27. Java SFTP Server Bibliothek?
- 28. SFTP in Python? (plattformunabhängig)
- 29. SFTP-Anmeldung mit Schlüssel und Kennwort automatisieren
- 30. Datei mit PowerShell auf SFTP hochladen
file_get_contents und file_put_contents funktionieren beide super. Ich wusste nie, dass sie mit SFTP gearbeitet haben und es ist so viel einfacher als mit den eingebauten SFTP-Sachen. Vielen Dank! – jbrahy
Auch wenn Sie file_get_contents() verwenden, benötigen Sie immer noch die Erweiterung ssh2 (afaik). – StanE