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. |