El comando SCP en Linux: Transferencia segura de archivos - Comandos en Linux

El comando SCP en Linux: Transferencia segura de archivos

El comando SCP (Secure Copy) es una herramienta muy útil en Linux que nos permite transferir archivos de forma segura entre sistemas remotos. Es una alternativa segura al comando FTP y utiliza el protocolo SSH para cifrar los datos durante la transferencia.

A continuación veremos como podemos ahorrar mucho tiempo con scp, y los usos mas importantes para usarla.

Índice

Introducción al comando SCP

En el mundo de la administración de sistemas Linux, a menudo necesitamos transferir archivos entre diferentes servidores o máquinas. El comando SCP nos permite hacer esto de manera segura y eficiente. Con SCP, podemos copiar archivos y directorios de forma remota, tanto de un servidor local a uno remoto como viceversa.

SCP utiliza la autenticación basada en clave pública para garantizar la seguridad de la transferencia de archivos. Esto significa que debemos tener una clave pública configurada en el servidor remoto para poder acceder a él. Una vez que se establece la conexión, SCP utiliza el cifrado SSH para proteger los datos durante la transferencia.

Las mejores opciones del comando SCP

OpciónDescripción
-rCopia directorios y su contenido de forma recursiva.
-PEspecifica el puerto SSH a utilizar.
-pPreserva los atributos de los archivos durante la copia.
-qModo silencioso, no muestra mensajes de progreso.
-CComprime los datos durante la transferencia.

A continuación, se muestra una explicación detallada de las 25 mejores opciones que nos ofrece el comando SCP:

  1. -r: Esta opción permite copiar directorios y su contenido de forma recursiva. Es muy útil cuando necesitamos transferir un directorio completo.
  2. -P: Con esta opción, podemos especificar el puerto SSH a utilizar. Por defecto, SCP utiliza el puerto 22, pero si necesitamos utilizar un puerto diferente, podemos hacerlo con esta opción.
  3. -p: Al utilizar esta opción, se preservarán los atributos de los archivos durante la copia. Esto incluye permisos, propietario, grupo y fechas de modificación.
  4. -q: Esta opción activa el modo silencioso y no muestra mensajes de progreso durante la transferencia. Es útil cuando deseamos realizar copias sin interrupciones.
  5. -C: Con esta opción, los datos se comprimen durante la transferencia. Esto puede acelerar la velocidad de transferencia, especialmente en conexiones lentas.
  6. -v: Esta opción activa el modo verbose y muestra información detallada sobre la transferencia, como los archivos que se están copiando y el progreso de la transferencia.
  7. -c cipher: Con esta opción, se puede especificar el algoritmo de cifrado a utilizar durante la transferencia. Por defecto, SCP utiliza el algoritmo AES.
  8. -l limit: Esta opción permite limitar la velocidad de transferencia en kilobits por segundo. Es útil cuando se necesita controlar el ancho de banda utilizado por SCP.
  9. -i identity_file: Con esta opción, se puede especificar la ruta del archivo de clave privada a utilizar para la autenticación. Esto es útil cuando se utiliza autenticación basada en clave pública.
  10. -B: Esta opción activa el modo de transferencia en lotes. En lugar de solicitar la contraseña cada vez, SCP intentará utilizar la autenticación basada en clave pública.
  11. -1: Esta opción fuerza el uso del protocolo SSH versión 1. Sin embargo, se recomienda utilizar la versión 2 debido a sus mejoras en seguridad y rendimiento.
  12. -2: Esta opción fuerza el uso del protocolo SSH versión 2. Es la opción predeterminada y se recomienda utilizarla.
  13. -4: Esta opción fuerza el uso de IPv4 en lugar de IPv6 durante la transferencia.
  14. -6: Esta opción fuerza el uso de IPv6 en lugar de IPv4 durante la transferencia.
  15. -F: Con esta opción, se puede especificar un archivo de configuración alternativo en lugar del archivo de configuración predeterminado "~/.ssh/config".
  16. -s: Esta opción permite especificar el tamaño máximo de paquete a utilizar durante la transferencia. Puede mejorar el rendimiento en conexiones de red lentas.
  17. -T: Esta opción desactiva la asignación de una terminal TTY en el servidor remoto. Es útil cuando se utiliza SCP en scripts o automatizaciones.
  18. -B: Esta opción permite especificar un ancho de banda máximo a utilizar durante la transferencia. Puede ser útil para limitar el impacto en la red.
  19. -3: Esta opción permite la transferencia entre dos hosts remotos a través del host local. Es útil cuando se necesita copiar archivos entre dos servidores remotos sin tener que copiarlos localmente primero.
  20. -0: Esta opción desactiva la compresión durante la transferencia. Puede ser útil en conexiones de red rápidas o cuando la compresión no es necesaria.
  21. -E: Esta opción permite la expansión de nombres de archivo remotos utilizando caracteres comodín. Por ejemplo, se puede utilizar para copiar todos los archivos con una extensión específica.
  22. -9: Esta opción activa la compresión en el nivel máximo. Puede mejorar la velocidad de transferencia, pero también puede aumentar la carga de CPU en el servidor remoto.
  23. -5: Esta opción fuerza el uso del algoritmo de compresión LZ77 en lugar del algoritmo de compresión por defecto.
  24. -7: Esta opción fuerza el uso del algoritmo de compresión ZLIB en lugar del algoritmo de compresión por defecto.
  25. -8: Esta opción fuerza el uso del algoritmo de compresión ZLIB en lugar del algoritmo de compresión por defecto, pero con un nivel de compresión más bajo.
  26. -9: Esta opción fuerza el uso del algoritmo de compresión ZLIB en lugar del algoritmo de compresión por defecto, pero con un nivel de compresión más alto.

El comando SCP es una herramienta poderosa y segura para transferir archivos en entornos Linux. Con sus numerosas opciones, podemos personalizar nuestras transferencias según nuestras necesidades. Además, podemos combinar el comando SCP con otros comandos para mejorar nuestra eficiencia y productividad.

Ejemplos de uso del comando SCP en Linux

Os dejo unos ejemplos que ilustran algunas situaciones comunes en las que el comando SCP y sus opciones pueden ahorrarnos tiempo al realizar transferencias de archivos de forma eficiente y preservando los atributos necesarios.

  1. Copiar un directorio completo de forma recursiva:
    scp -r directorio_origen usuario@servidor:directorio_destino
    Esta opción es muy útil cuando necesitamos transferir un directorio completo y todos sus archivos y subdirectorios. Por ejemplo, si tenemos un directorio con todos nuestros archivos de proyecto y queremos copiarlo a un servidor remoto para realizar pruebas o despliegue, podemos utilizar esta opción para copiar todo el directorio de forma rápida y sencilla.
  2. Copiar archivos con atributos preservados:
    scp -p archivo_origen usuario@servidor:directorio_destino
    Al utilizar la opción -p, se preservarán los atributos de los archivos durante la copia, como los permisos, el propietario, el grupo y las fechas de modificación. Esto es útil cuando necesitamos copiar archivos con todos sus atributos intactos, por ejemplo, al realizar copias de seguridad o al migrar archivos entre servidores.
  3. Copiar archivos comprimidos:
    scp -C archivo_origen usuario@servidor:directorio_destino
    La opción -C permite comprimir los datos durante la transferencia. Esto puede acelerar la velocidad de transferencia, especialmente en conexiones lentas. Es útil cuando necesitamos copiar archivos grandes o muchos archivos a través de una conexión de red lenta, ya que la compresión reduce el tamaño de los datos y mejora la eficiencia de la transferencia.
  4. Copiar archivos utilizando un puerto SSH personalizado:
    scp -P puerto_ssh archivo_origen usuario@servidor:directorio_destino
    Por defecto, SCP utiliza el puerto 22 para la conexión SSH. Sin embargo, en algunas situaciones, puede ser necesario utilizar un puerto SSH personalizado. Con la opción -P, podemos especificar el puerto SSH a utilizar. Esto es útil cuando necesitamos conectarnos a un servidor remoto a través de un puerto SSH diferente al predeterminado, por ejemplo, si el servidor está configurado para utilizar un puerto no estándar por motivos de seguridad.

Aquí hay tres comandos adicionales que puedes combinar con SCP:

  • SSH: Utiliza SSH para acceder de forma remota a otros sistemas y ejecutar comandos.
  • Tar: Utiliza el comando Tar para comprimir y descomprimir archivos y directorios antes de transferirlos con SCP.
  • Rsync: Utiliza Rsync para sincronizar archivos y directorios entre sistemas remotos de manera eficiente.

Al combinar estos comandos, puedes ampliar tus capacidades y aprovechar al máximo el potencial de Linux en la administración de sistemas.

Subir