Comando SCP: Cómo transferir archivos hacia y desde los servidores

13min

En tu día a día como desarrollador o administrador de sistemas seguro que te encontrarás con la necesidad de transferir archivos, hacia o desde el servidor donde tengas tus aplicaciones. En un escenario muy básico se suelen usar programas de FTP, pero no siempre son la mejor opción. Si tenemos acceso por SSH al servidor, la opción más sencilla que tenemos para transferir archivos es el comando SCP, disponible en los sistemas basados en Linux/Unix.

En este artículo, te explicaremos los conceptos básicos del comando SCP y cómo transferir archivos, abordando también una alternativa para hacerlo desde Windows.

Índice

¿Qué es el comando SCP?

SCP (Secure Copy Protocol) es una herramienta de línea de comandos que permite la transferencia segura de archivos entre sistemas locales y remotos. Desarrollado como una extensión segura del protocolo SSH (Secure Shell), SCP garantiza que los archivos se transfieran de manera cifrada, protegiendo así los datos sensibles durante la transferencia. Es ampliamente utilizado en entornos Linux y Unix, y es especialmente útil para administradores de sistemas, desarrolladores y usuarios que gestionan servidores VPS o dedicados, como los que ofrece Arsys.

SCP combina la eficiencia de la copia directa con la seguridad del cifrado SSH, lo que significa que los archivos se transfieren sin riesgo de ser interceptados por terceros. A diferencia de otros métodos de transferencia como FTP, SCP no requiere un servidor adicional, ya que se apoya en la infraestructura SSH que ya está presente en la mayoría de los sistemas Linux.

Ventajas de publicar tu página web conectando tu dominio y transfiriendo archivos con SCP

Publicar una página web no se limita solo a elegir un diseño atractivo o a generar contenido de calidad. También implica tener control sobre el entorno de alojamiento, la seguridad de la transferencia de archivos y la correcta configuración del dominio. Utilizar herramientas como SCP (Secure Copy Protocol), junto con un dominio personalizado y servicios de hosting profesionales como los de Arsys, puede marcar una gran diferencia en términos de eficiencia, seguridad y control técnico. Estas son algunas de las principales ventajas de este enfoque.

Mayor control sobre la estructura y archivos de tu sitio web

Utilizar SCP te permite acceder directamente al sistema de archivos de tu servidor, lo que se traduce en un control total sobre cada archivo y carpeta de tu página web. Puedes subir scripts, modificar hojas de estilo, gestionar permisos, reorganizar directorios o reemplazar archivos de forma precisa, sin necesidad de interfaces gráficas intermedias. Este nivel de control es especialmente útil para desarrolladores web, administradores de sistemas o usuarios avanzados que desean mantener una estructura limpia, personalizada y optimizada.

Transferencias seguras y rápidas gracias al protocolo SSH

Una de las principales ventajas de SCP es que todas las transferencias se realizan bajo el protocolo SSH, lo que garantiza cifrado punto a punto, autenticación segura y protección contra accesos no autorizados. A diferencia de métodos como FTP, que pueden transmitir datos en texto plano, SCP ofrece una capa de seguridad robusta para proteger credenciales y contenidos críticos. Además, al ser una herramienta de línea de comandos, permite automatizar cargas y descargas, facilitando despliegues rápidos y seguros desde entornos de desarrollo o scripts de integración continua.

Integración sencilla con tu dominio y servicios de hosting

Cuando usas un dominio personalizado registrado en Arsys y lo conectas a un servidor VPS, cloud o dedicado, puedes gestionar directamente la publicación de tu web utilizando SCP para subir archivos y apuntar el dominio hacia el servidor mediante DNS. Esta integración facilita la publicación y actualización del sitio web de manera centralizada, segura y sin complicaciones. Además, al usar soluciones de hosting como las de Arsys, puedes aprovechar paneles de control, soporte técnico y herramientas adicionales que simplifican la administración de dominios y servidores, incluso cuando trabajas con herramientas avanzadas como SCP.

SCP vs SFTP: ¿Cuál es la diferencia?

SCP y SFTP son dos protocolos de transferencia de archivos seguros que utilizan el protocolo SSH para cifrar los datos durante la transferencia. Sin embargo, hay algunas diferencias clave entre ambos.

Características del comando SCP

  • Sintaxis simple: SCP utiliza una sintaxis simple y similar a la del comando cp de Unix, lo que facilita su uso y comprensión.
  • Solo transferencia de archivos: SCP se centra exclusivamente en la transferencia de archivos y no admite operaciones más avanzadas, como la navegación por directorios o la administración de permisos.
  • Rendimiento eficiente: Es conocido por su eficiencia en la transferencia de archivos grandes y su bajo consumo de recursos del sistema.

Características del protocolo SFTP

  • Funcionalidad amplia: SFTP es un protocolo más completo que permite no solo la transferencia de archivos, sino también operaciones avanzadas, como la navegación por directorios, la administración de permisos y la eliminación de archivos.
  • Interfaz de usuario similar a FTP: SFTP a menudo se considera más fácil de usar para aquellos que están familiarizados con el protocolo FTP, ya que tiene una interfaz de usuario similar.
  • Mayor consumo de recursos: SFTP puede requerir más recursos del sistema que SCP, especialmente en transferencias de archivos grandes.

¿Cuál debería elegir? SCP o SFTP

La elección entre SCP y SFTP depende de tus necesidades específicas:

  • Si solo necesitas transferir archivos de manera segura de forma rápida y sencilla, SCP es una excelente opción debido a su simplicidad y eficiencia.
  • Si necesitas funcionalidades más avanzadas, como la administración de directorios o permisos, SFTP es la elección adecuada, ya que ofrece un conjunto más completo de características.
  • Si te sientes más cómodo con una interfaz similar a FTP, SFTP puede ser la opción más intuitiva.

¿Cómo funciona el comando SCP?

El funcionamiento de SCP es relativamente sencillo. Utiliza una conexión SSH para autenticarse en el servidor remoto y, una vez autenticado, se inicia la transferencia de archivos. SCP ofrece dos modos de uso: copiar archivos desde el sistema local al servidor remoto y viceversa. Esto lo convierte en una herramienta versátil para administradores de sistemas.

Los pasos para transferir archivos con SCP son los siguientes:

  1. Iniciar sesión en el servidor remoto con el comando SSH.
  2. Ejecutar el comando SCP para transferir el archivo.
  3. Aceptar la solicitud de autenticación del servidor remoto.

Sintaxis básica del comando SCP

La sintaxis básica del comando SCP sigue este formato general:

scp [opciones] [archivo] [usuario@servidor:ruta/destino]
  • Opciones: Aquí puedes especificar opciones como -r (para copiar directorios de manera recursiva) o -P (para especificar un puerto).
  • Origen: Este es el archivo o directorio que deseas copiar.
  • Destino: Indica la ubicación de destino, que puede ser un servidor remoto o una ubicación local.

El comando SCP ofrece una serie de opciones que permiten modificar su comportamiento. Las opciones más utilizadas son las siguientes:

  • -r: Esta opción permite copiar directorios y sus contenidos de manera recursiva. Es útil cuando deseas transferir carpetas completas, no solo archivos individuales.
  • -P: Puedes especificar un puerto de conexión SSH diferente al puerto estándar 22 utilizando esta opción. Esto es útil si tu servidor SSH está configurado para utilizar un puerto no predeterminado.
  • -C: La compresión de datos puede acelerar la transferencia de archivos en conexiones de red lentas. Puedes habilitar la compresión utilizando esta opción.
  • -i: Si deseas especificar una clave de autenticación diferente a la predeterminada, puedes hacerlo utilizando la opción -i. Esto es útil cuando trabajas con múltiples claves SSH.
  • -v: Si deseas obtener información detallada sobre el proceso de transferencia, puedes usar la opción -v. Esto te proporcionará información adicional sobre la conexión y el progreso.
  • -l: Puedes limitar la velocidad de transferencia en kilobits por segundo utilizando la opción -l. Esto puede ser útil para evitar la saturación de la red.
  • -q: Para activar el modo silencioso y ocultar el progreso de la transferencia. No se mostrarán errores durante el proceso, excepto errores críticos.

Recomendaciones para utilizar el comando SCP

  • Para transferir archivos de gran tamaño, es recomendable utilizar la opción -l para especificar el límite de transferencia de datos.
  • Para transferir archivos entre dos servidores remotos, es necesario utilizar la opción -P para especificar el puerto SSH.
  • Para transferir archivos a través de un proxy, es necesario utilizar la opción -p para especificar la dirección IP y el puerto del proxy.

¿Cómo utilizar el comando SCP para transferir archivos?

La operativa la realizamos desde el terminal, escribiendo básicamente el comando scp, seguido de los datos del archivo que se desea transferir, la localización del servidor al que nos debemos conectar, su usuario, etc. En principio el comando lo lanzarás desde tu ordenador de trabajo, en el sistema local, aunque si tienes que transferir comandos entre servidores, lo ejecutarías desde uno de los servidores involucrados. Este comando se encarga de hacer por debajo la conexión por SSH con el servidor remoto y, por supuesto, la transferencia del propio archivo.

Transferir archivos hacia el servidor remoto

En este caso tenemos que indicar el archivo en nuestro sistema local que queremos subir, junto con los datos de SSH para conectarse al servidor remoto, así como la localización de destino.

scp archivo-en-local.tar user@1.2.3.4:/directorio/destino/servidor/remoto
  • archivo-en-local.tar es el archivo que queremos subir
  • user es el nombre del usuario que tenemos para el acceso SSH.
  • 2.3.4 es la IP del servidor remoto. También podríamos hacer uso del nombre del dominio que resuelva hacia ese servidor.
  • /directorio/destino/servidor/remoto es el directorio donde quieres dejar el archivo, dentro del servidor remoto.

Al realizar la conexión, se nos solicitará la clave que tengamos en el servidor remoto, para autenticar el acceso.

Transferir archivos desde el servidor remoto

En este caso queremos descargar un archivo existente en el servidor, para disponer de él en nuestro ordenador de trabajo. El comando es bastante similar, solo que indicamos primero los datos del servidor remoto y el archivo requerido y luego la localización donde colocarlo en local.

scp user@1.2.3.4:/ruta/servidor/remoto/archivo.tgz archivo-en-local.tgz

En este ejemplo nos conectaríamos al servidor con la IP 1.2.3.4 y usando el usuario user. El fichero del servidor llamado archivo.tgz lo almacenaríamos en nuestro ordenador con el nombre archivo-en-local.tgz.

El comando scp es bastante potente. Te aconsejamos listar su ayuda para comprobar otras opciones  útiles, como por ejemplo la transferencia de directorios con todo su contenido, con la opción -r.

Alternativa  SCP para Windows

Si estamos en un ordenador local con Windows contamos con un software de interfaz gráfica para realizar la transferencia de archivos vía scp, que se denomina WinSCP. Lo podemos descargar desde su propia página web.

Otra posibilidad para usar este comando es por medio del software Putty, que incorpora un comando similar a scp, pero que se denomina pscp.

Cómo usar SCP para subir tu sitio web desde local a tu VPS

Una vez que tienes tu servidor VPS configurado y tu dominio conectado, llega el momento de publicar tu página web. Una forma eficaz y segura de hacerlo es mediante el comando SCP (Secure Copy Protocol), que permite transferir archivos desde tu equipo local directamente al servidor utilizando el protocolo SSH. Este método es ideal para desarrolladores, administradores o cualquier usuario que necesite subir archivos web de forma segura y rápida.

Antes de comenzar, asegúrate de contar con la siguiente información:

  • La IP pública de tu VPS.
  • Un usuario con acceso SSH (normalmente root o un usuario con permisos suficientes).
  • Tu clave SSH privada o la contraseña del servidor.

Si estás utilizando un servidor VPS de Arsys, puedes gestionar estos accesos fácilmente desde tu panel de cliente, donde también puedes generar claves SSH seguras.

En tu equipo local, organiza todos los archivos de tu sitio web (HTML, CSS, imágenes, scripts, etc.) en una carpeta, por ejemplo:

/home/usuario/mi-web/

Para subir estos archivos a tu servidor, abre la terminal y utiliza el siguiente comando:

scp -r /home/usuario/mi-web/* root@123.45.67.89:/var/www/html/

Este comando indica que se debe copiar recursivamente (-r) todo el contenido de la carpeta mi-web al directorio /var/www/html/ del servidor, que es la ubicación habitual para sitios web en servidores con Apache o Nginx. Asegúrate de reemplazar la IP y las rutas por las correspondientes a tu entorno.

Si estás utilizando autenticación por clave SSH, puedes incluirla con la opción -i, así:

scp -i /ruta/a/tu_clave.pem -r /home/usuario/mi-web/* root@123.45.67.89:/var/www/html/

Una vez completada la transferencia, puedes conectarte por SSH al VPS para verificar que los archivos estén en su sitio:

ssh root@123.45.67.89
ls -l /var/www/html/

Es importante también asegurarse de que el servidor web (como Apache o Nginx) tenga permisos adecuados para acceder a esos archivos. Si todo está correctamente configurado y tu dominio apunta a la IP del servidor, podrás ver tu página web en línea accediendo directamente a tu dominio personalizado.

Este proceso ofrece una forma segura, directa y eficiente de publicar una web profesional, aprovechando el control total y el alto rendimiento que ofrecen los VPS de Arsys.

Conclusiones sobre el comando SCP

El comando SCP es una herramienta esencial para cualquier administrador de servidores. Ofrece una manera segura y eficiente de transferir archivos entre sistemas locales y remotos, lo que es crucial en entornos de servidor.

En resumen, el comando SCP es una herramienta vital para administrar la infraestructura de un sitio web en términos de dominio y hosting web. Proporciona la capacidad de cargar, actualizar y gestionar contenido de manera segura, lo que es esencial para mantener un sitio web en funcionamiento y seguro para los visitantes. Ya sea porque eres un administrador de sistemas o porque acabas de crear tu página web, comprender y utilizar eficazmente SCP es fundamental para el éxito de tu proyecto online.

Manuel León

Productos relacionados: