Además de la ejecución remota de comandos, el servicio SSH ofrece la posibilidad de transferir archivos entre el cliente y el servidor. Para ello se hará uso del comando scp
(Secure CoPy).
Si se quiere transferir un archivo desde el cliente a un servidor remoto se ejecutaría el comando:
scp ruta_origen ruta_destino
Por ejemplo, si se quiere transferir el fichero prueba.pdf
que se encuentra en el directorio ~/Documentos
, y se quiere transferir al home del usuario arubio en el equipo 192.168.1.90, se debe ejecutar el siguiente comando:
scp ~/Documentos/prueba.pdf arubio@192.158.1.90:/home/arubio
También es posible realizar la transferencia al revés, es decir, pasar un archivo que se localiza en el servidor SSH al equipo cliente:
scp arubio@192.158.1.90:/home/arubio/prueba.pdf ~/prueba.pdf
La sintaxis completa de scp
es la mostrada a continuación:
scp [-1246Cpqrv] [-F ssh_config] [-i identity file] [-l limit] [-P port] [[user@]host1:]file1... [[user@]host1:]file2
El significado de cada uno de sus parámetros es el siguiente:
Parámetro | Significado |
---|---|
-1 | Obliga a SCP a utilizar SSH v1 |
-2 | Obliga a SCP a utilizar SSH v2 |
-4 | Obliga a SCP a emplear exclusivamente direcciones IP v4. |
-6 | Obliga a SCP a emplear exclusivamente direcciones IP v6. |
-C | Habilita la compresión de los ficheros transferidos. |
-p | Mantiene la fecha de modificación y de acceso, así como los permisos del archivo original transferido. |
-q | Deshabilita el contador de progreso de la transferencia. |
-r | Copia recursivamente los archivos de un directorio. |
-v | Muestra información más detallada acerca del proceso de conexión y de transferencia. |
-F | Indica la ubicación del fichero de configuración de OpenSSH Client. Por defecto se utiliza /etc/ssh/ssh_config |
-i | Indica la ubicación de la clave privada empleada para una conexión autenticada mediante claves. |
-l | Especifica el ancho de banda a emplear en el canal de comunicación (expresado en Kb/s). |
-P | Establece el puerto al que conectarse en el servidor remoto. |