Este es una pequeña porción de código que sirve para transmitir un archivo mediante SSH (SFTP) directamente desde un programa en PHP.
Este código esta hecho para php-cli (PHP Command Line Interface o PHP por linea de comando), pero es valido para cualquier forma de programación en este lenguaje..
Cabe señalar que debemos compilar el modulo para php y son requerimientos básicos las librerías OpenSSL y libssh2
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 27 28 29 30 31 | #!/usr/bin/php < ?php /* Establecemos la conexión al servidor */ $connection = ssh2_connect('ssh.servidor.com', 22); /* Enviamos los datos de autenticación */ ssh2_auth_password($connection, 'usuario', 'passwd'); /* Establecemos que la transmisión es sobre SFTP */ $sftp = ssh2_sftp($connection); /* Abrimos el archivo origen a transmitir */ /* La apertura es solo para lectura (r)*/ $input = fopen("archivo-entrada", "r"); /* Abrimos el archivo destino en el servidor remoto */ /* La apertura es para escritura (w) y en formato binario (b) */ $output = fopen("ssh2.sftp://$sftp/archivo-salida", 'wb'); /* creamos un bucle hasta el final del archivo de entrada (EOF) */ while (!feof($input)) { /* Vamos leyendo de bloques de 8192 Bytes */ $contents = fread($input, 8192); /* Escribimos los 8192 bytes en el flujo de salida */ fwrite($output,$contents); } /* Cerramos los archivos */ fclose($input); fclose($output); ?>; |
Espero que les sirva esta información.
Pueden encontrar mas información en:
http://www.php-cli.com/
http://cl.php.net/manual/en/book.ssh2.php
