🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo transferir archivos con SCP y SFTP

Actualizado el 16 de noviembre de 2025

Introducción: ¿Qué son SCP y SFTP y por qué los necesitas?

Si alguna vez has tenido que transferir archivos entre tu ordenador y un servidor Linux, seguro que has oído hablar de FTP. Pero el FTP clásico tiene un gran problema: no es seguro. Tus contraseñas y datos viajan sin cifrar por la red, lo que los hace vulnerables.

Por eso, hoy vamos a hablar de SCP y SFTP, dos herramientas que funcionan sobre SSH (Secure Shell) y que cifran todo el tráfico. Son la forma estándar y segura de copiar archivos a un servidor o entre servidores Linux.

En este artículo, te explico de forma sencilla y con ejemplos prácticos cómo usar ambas herramientas. No necesitas ser un experto en Linux, solo tener acceso a una terminal y un usuario con permisos en el servidor de destino.


¿Cuál es la diferencia entre SCP y SFTP?

Aunque ambos usan SSH, tienen enfoques distintos:

CaracterísticaSCP (Secure Copy Protocol)SFTP (SSH File Transfer Protocol)
Uso principalCopiar archivos de forma rápida y directaNavegar, gestionar y transferir archivos de forma interactiva
Comandos interactivosNo, solo copiaSí, como un mini FTP
VelocidadGeneralmente más rápidoUn poco más lento por la sobrecarga de comandos
Reanudar descargasNoSí (con algunos clientes)
Gestión de permisosLimitadaMás completa

[!TIP]
Regla rápida: Si solo quieres copiar un archivo o una carpeta de una vez, usa SCP. Si necesitas explorar el servidor, borrar, renombrar o mover varios archivos, usa SFTP.


Requisitos previos antes de empezar

Antes de lanzar el primer comando, asegúrate de tener:

  1. Acceso SSH al servidor: necesitas la IP o dominio, un usuario y su contraseña (o una clave SSH).
  2. Cliente SSH instalado en tu máquina local (en Linux y macOS viene por defecto, en Windows puedes usar PowerShell o instalar OpenSSH).
  3. Puerto SSH abierto: el estándar es el 22, pero algunos servidores usan otro (por ejemplo, en Syspanel el acceso web es por el puerto 2106, pero SSH suele mantener el 22 o el que configures).

[!INFO]
Si tu servidor usa un panel de control como Syspanel, recuerda que el acceso a la interfaz web es por el puerto 2106, pero para SCP/SFTP necesitas el puerto SSH estándar (normalmente 22).


Cómo transferir archivos con SCP (Secure Copy)

SCP es ideal para copiar archivos de forma rápida y directa. La sintaxis básica es:

scp [opciones] origen destino

Copiar un archivo local al servidor

Imagina que tienes un archivo llamado backup.tar.gz en tu escritorio y quieres subirlo a /home/usuario/ del servidor.

scp backup.tar.gz usuario@192.168.1.100:/home/usuario/

Te pedirá la contraseña del usuario remoto y, si todo va bien, verás una barra de progreso.

Copiar un archivo del servidor a tu máquina local

Para descargar un archivo, invierte el orden:

scp usuario@192.168.1.100:/home/usuario/backup.tar.gz .

El punto final indica que lo guardes en el directorio actual.

Copiar un directorio completo (recursivo)

Si necesitas transferir una carpeta entera con todo su contenido, usa la opción -r (recursiva):

scp -r /ruta/local/miweb usuario@192.168.1.100:/home/usuario/

Esto copiará la carpeta miweb y todo lo que contiene dentro del directorio /home/usuario/.

Especificar un puerto SSH diferente

Si tu servidor usa un puerto distinto al 22 (por ejemplo, el 2222), añade -P (mayúscula, a diferencia de -p que se usa para preservar permisos):

scp -P 2222 archivo.txt usuario@192.168.1.100:/home/usuario/

Opciones útiles de SCP

  • -v: modo verbose (muestra todo el proceso, útil para depurar).
  • -C: comprime los datos durante la transferencia (reduce tiempo en conexiones lentas).
  • -p: preserva las fechas y permisos de los archivos.

[!TIP]
Si usas claves SSH en lugar de contraseñas, la transferencia será mucho más rápida y segura. Puedes generar una con ssh-keygen y copiarla al servidor con ssh-copy-id.


Cómo usar SFTP para transferir archivos de forma interactiva

SFTP es como un "FTP seguro" que te permite navegar por los directorios del servidor y ejecutar comandos similares a los de una terminal local. Es perfecto para tareas de gestión.

Conectar a un servidor SFTP

Para iniciar una sesión, escribe:

sftp usuario@192.168.1.100

Si el puerto es diferente, usa -oPort=puerto:

sftp -oPort=2222 usuario@192.168.1.100

Verás un prompt que empieza con sftp>.

Comandos básicos de SFTP que debes conocer

Dentro de la sesión SFTP, puedes usar estos comandos:

ComandoDescripción
lsListar archivos del servidor
llsListar archivos locales
cdCambiar de directorio en el servidor
lcdCambiar de directorio local
pwdVer directorio actual del servidor
lpwdVer directorio local actual
put archivoSubir un archivo local al servidor
get archivoDescargar un archivo del servidor
mput *.txtSubir múltiples archivos (con comodines)
mget *.txtDescargar múltiples archivos
rm archivoBorrar un archivo en el servidor
mkdir carpetaCrear un directorio en el servidor
rmdir carpetaEliminar un directorio vacío
exit o byeSalir de la sesión

Ejemplo práctico paso a paso

  1. Conecta al servidor:

    sftp usuario@192.168.1.100
    
  2. Navega hasta el directorio de destino:

    sftp> cd /var/www/html
    
  3. Sube un archivo desde tu máquina local:

    sftp> put index.html
    
  4. Descarga un archivo del servidor a tu equipo:

    sftp> get config.php
    
  5. Crea una carpeta en el servidor:

    sftp> mkdir backups
    
  6. Sal de la sesión:

    sftp> exit
    

[!WARNING]
Ten cuidado con el comando rm en SFTP: borra archivos en el servidor sin moverlos a la papelera. Revisa siempre que estés en el directorio correcto antes de borrar.


Automatizar transferencias con scripts

Si necesitas hacer copias de seguridad periódicas o mover archivos de forma automática, puedes combinar SCP o SFTP con cron jobs (tareas programadas).

Ejemplo de script con SCP

Crea un archivo llamado backup.sh:

#!/bin/bash
scp -r /ruta/local/datos usuario@192.168.1.100:/home/usuario/backups/

Hazlo ejecutable y añádelo al cron:

chmod +x backup.sh
crontab -e

Añade una línea para que se ejecute cada día a las 2 AM:

0 2 * * * /ruta/al/script/backup.sh

[!TIP]
Para que el script funcione sin contraseña (ideal para automatizar), configura claves SSH en lugar de contraseñas.


Errores comunes y cómo solucionarlos

1. "Permission denied" (Permiso denegado)

Causa: el usuario no tiene permisos para escribir en el directorio de destino.

Solución: verifica los permisos del directorio en el servidor con ls -ld /ruta y asegúrate de que tu usuario tenga permisos de escritura. Puedes usar sudo si tienes acceso.

2. "Connection timed out" (Tiempo de conexión agotado)

Causa: el puerto SSH está bloqueado por un firewall o el servidor no responde.

Solución: comprueba que el puerto 22 (o el que uses) está abierto. Si el servidor está detrás de un firewall, abre el puerto o usa un túnel SSH.

3. "Host key verification failed" (Fallo en la verificación de la clave del host)

Causa: la clave del servidor ha cambiado o no está en tu archivo known_hosts.

Solución: edita el archivo ~/.ssh/known_hosts y elimina la línea correspondiente al servidor. Luego vuelve a conectar.

4. No puedo subir archivos grandes

Causa: límites de tamaño en el servidor o problemas de red.

Solución: usa la opción -C de SCP para comprimir o divide el archivo en partes más pequeñas con split.

[!WARNING]
Si usas un panel como Syspanel, no confundas el puerto web (2106) con el puerto SSH. Para SCP/SFTP siempre necesitarás el puerto SSH (normalmente 22).


SCP vs SFTP: ¿Cuál elegir?

La respuesta depende de tu caso de uso:

  • Elige SCP si: solo necesitas copiar archivos de un punto a otro, buscas máxima velocidad y no necesitas interactuar con el servidor.
  • Elige SFTP si: necesitas explorar directorios, gestionar archivos de forma interactiva, reanudar descargas o trabajar con múltiples archivos.

En la práctica, muchos administradores usan ambos: SFTP para tareas de gestión diaria y SCP para automatizar copias de seguridad.


Preguntas frecuentes (FAQ)

¿SCP y SFTP usan el mismo puerto?

Sí, ambos utilizan el puerto SSH por defecto (22). Si cambias el puerto SSH en el servidor, cambiará para ambos.

¿Puedo usar SCP/SFTP en Windows?

Sí. En Windows 10/11 puedes usar PowerShell o la terminal de Windows con OpenSSH instalado. También puedes usar herramientas gráficas como WinSCP o FileZilla.

¿Necesito instalar algo en el servidor?

No. SCP y SFTP vienen integrados con el servidor SSH (OpenSSH). Si tu servidor tiene SSH activo, ya puedes usarlos.

¿Es seguro transferir contraseñas por SCP?

Sí, porque todo el tráfico va cifrado mediante SSH. Es mucho más seguro que el FTP tradicional.

¿Puedo reanudar una transferencia interrumpida?

Con SFTP sí, si usas clientes gráficos como FileZilla. Con SCP no es posible, tendrías que empezar de nuevo.

¿Qué pasa si mi servidor usa Syspanel?

Syspanel es un panel de control que facilita la gestión de tu servidor. El acceso a su interfaz web es por el puerto 2106, pero para transferir archivos con SCP o SFTP deberás usar el puerto SSH estándar (22 o el que tengas configurado). No intentes conectar SCP al puerto 2106, ya que es solo para el panel web.


Conclusión

Dominar SCP y SFTP es una habilidad esencial para cualquiera que trabaje con servidores Linux. No solo te permiten transferir archivos de forma segura, sino que también son la base de muchas automatizaciones y copias de seguridad.

Recuerda:

  • SCP es rápido y directo, ideal para copias puntuales.
  • SFTP es interactivo y versátil, perfecto para gestionar archivos en el servidor.
  • Ambos usan SSH y son igual de seguros.

Empieza practicando con archivos pequeños y, una vez que te sientas cómodo, automatiza tus tareas con scripts y claves SSH. En poco tiempo, mover archivos entre tu equipo y el servidor será pan comido.

Si tienes alguna duda, déjala en los comentarios y te ayudaremos a resolverla. ¡Feliz transferencia!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel