He encontrado muchos scripts PHP para clientes web FTP. Necesito implementar un cliente SFTP como una aplicación web en PHP. ¿Es compatible PHP con SFTP? No pude encontrar muestras ¿Alguien puede ayudarme con esto?Cómo SFTP con PHP?
Respuesta
PHP tiene envolturas de secuencia ssh2 (deshabilitadas de forma predeterminada), por lo que puede usar las conexiones de sftp con cualquier función que admita el flujo de envolturas utilizando ssh2.sftp://
para el protocolo, p.
file_get_contents('ssh2.sftp://user:[email protected]:22/path/to/filename');
o - cuando también mediante el 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');
Ver http://php.net/manual/en/wrappers.ssh2.php
En una nota lateral, también hay un buen montón de preguntas acerca de este tema ya:
Las funciones ssh2 no son muy buenas. Difícil de usar y aún más difícil de instalar, usarlos garantizará que su código tenga cero portabilidad. Mi recomendación sería usar phpseclib, a pure PHP SFTP implementation.
solo es compatible con SFTP v3 – Blacksonic
@indranama ¿Marcaría esto como la respuesta correcta para que los futuros usuarios no tengan que leer los comentarios para encontrar cuál funcionó mejor para usted? –
Realicé una copia de seguridad completa y escribí una clase que crea un archivo por lotes y luego llama al sftp
a través de una llamada system
. No es la manera más agradable (o más rápida) de hacerlo, pero funciona para lo que necesito y no requiere ninguna instalación de bibliotecas adicionales o extensiones en PHP.
podría ser el camino a seguir si usted no desea utilizar las extensiones ssh2
tema relacionado que me ayudó: https://groups.google.com/forum/#!topic/comp.security.ssh/_55TdDdUTCw – Quamis
he encontrado que "phpseclib" debe ayudarle con esto (SFTP y muchas más características). http://phpseclib.sourceforge.net/
para poner el archivo en el servidor, simplemente llamada (código de ejemplo de 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);
El informe de git está aquí: https://github.com/phpseclib/phpseclib/tree/master/phpseclib – relipse
Si puede utilizar la extensión ssh2 para PHP que sugiero revisar esto:
Monsta FTP ofrece SFTP/SCP, así como FTP normal a través de un cliente basado en web que se puede descargar gratis. (descargo de responsabilidad: estoy involucrado con este proyecto)
¿cómo se relaciona esto? ¿Monsta es una biblioteca PHP para uso de los desarrolladores? – Brian
- 1. SFTP desde PHP
- 2. sshclient paramiko con sftp
- 3. ¿Cómo usar sudo sobre SFTP con CyberDuck?
- 4. Cómo implementar SFTP con Qt/QNetworkAccessManager (C++)
- 5. ¿Cómo descargar un archivo de SFTP usando PHP?
- 6. Carga de archivos con SFTP
- 7. Carga de SFTP con VBA
- 8. Cómo usar SFTP en C#
- 9. Detalles del proxy con el comando SFTP
- 10. Cliente SFTP Node.js
- 11. SFTP C++ library?
- 12. ¿Cómo puedo copiar carpetas usando sftp?
- 13. Cómo implementar la inserción recursiva en sftp
- 14. Bibliotecas SFTP para .NET
- 15. sftp usando ftplib
- 16. RSpec: Stubbing SFTP
- 17. ¿Tarea SFTP para msbuild?
- 18. Python SSH/SFTP Module?
- 19. ASP, necesita usar SFTP
- 20. Java SFTP Transfer Library
- 21. SFTP usando cURL
- 22. rubí error SFTP
- 23. SFTP en Python? (plataforma independiente)
- 24. 'Poner' en SFTP usando PAramiko
- 25. ¿hay comunicaciones SFTP en C#?
- 26. biblioteca de servidor Java SFTP?
- 27. Visual Studio Sitio web de publicación con SCP/SFTP
- 28. Copiando un archivo en sftp con biblioteca jsch
- 29. Archivo de clave privada para SFTP en NetBeans
- 30. ¿Configura umask para una cuenta sftp?
file_get_contents y file_put_contents ambos funcionan increíble. Nunca supe que trabajaron con sftp y es mucho más fácil que usar las cosas integradas de sftp. ¡Gracias! – jbrahy
Incluso cuando se utiliza file_get_contents(), aún necesita la extensión ssh2 (afaik). – StanE