Apuntes otros

Cajón Desastre: Todo lo que no encaja en ninguna parte.

Transferencia de archivos con SFTP y SCP

Una vez que tenemos acceso SSH a un servidor, podemos aprovechar ese mismo canal para transferir archivos de forma segura. Para ello, existen dos herramientas principales: SFTP y SCP.

SFTP (SSH File Transfer Protocol)

SFTP es un protocolo interactivo para gestionar archivos en un servidor remoto a través de SSH. No tiene nada que ver con el viejo FTP, aunque su nombre se le parezca.

Para iniciar una sesión SFTP desde la terminal:

sftp usuario@servidor

Una vez dentro, se puede usar una serie de comandos similares a los de una consola local:

  • ls: listar archivos remotos
  • cd carpeta: cambiar de directorio remoto
  • lcd carpeta: cambiar directorio local
  • get archivo: descargar archivo
  • put archivo: subir archivo
  • mget *.txt: descargar varios archivos
  • mput *.jpg: subir varios archivos
  • mkdir nombre: crear carpeta en el servidor
  • rm archivo: borrar archivo remoto
  • exit: salir de la sesión

Ejemplo para subir varios archivos:

sftp usuario@servidor
mput *.pdf

También es posible descargar archivos a una carpeta local específica con lcd:

lcd Descargas
mget *.zip

Autocompletar y historial en SFTP

Dentro de una sesión sftp, puedes usar tabulación para autocompletar rutas o nombres de archivos, igual que en una terminal tradicional. Además, con las flechas ↑ ↓ puedes navegar por el historial de comandos usados.

SCP (Secure Copy)

SCP permite copiar archivos entre equipos locales y remotos usando también SSH, pero con comandos directos, sin sesión interactiva.

Ejemplos básicos:

  • Subir un archivo al servidor:
  • scp archivo.txt usuario@servidor:/ruta/destino/
  • Descargar un archivo del servidor:
  • scp usuario@servidor:/ruta/archivo.txt ./
  • Copiar una carpeta completa (con -r):
  • scp -r carpeta usuario@servidor:/ruta/
  • Especificar puerto SSH distinto (nota: -P mayúscula):
  • scp -P 2222 archivo.txt usuario@servidor:/ruta/

SCP es ideal para scripts o transferencias puntuales sin necesidad de navegar por carpetas.

Comprimir archivos antes de transferir

Si quieres transferir varios archivos o una carpeta con scp, es recomendable comprimirlos primero para acelerar la transferencia:

tar czf archivos.tar.gz carpeta/
scp archivos.tar.gz usuario@servidor:/ruta/

Luego, puedes descomprimir en el servidor.

SCP desde o hacia otro puerto personalizado

Cuando el servidor usa un puerto SSH diferente al 22, recuerda usar -P (mayúscula) en scp, por ejemplo:

scp -P 2222 archivo.txt usuario@servidor:/ruta/

Este detalle es fácil de olvidar y suele causar errores si se copia y pega desde ejemplos estándar.

¿Cuál usar?

  • Usa SFTP si quieres navegar, listar o gestionar archivos desde el servidor.
  • Usa SCP si solo quieres copiar archivos rápidamente con un solo comando.

¿Y qué es FTPS?

FTPS es una versión antigua del protocolo FTP con cifrado SSL/TLS. A diferencia de SFTP o SCP, no usa SSH, y suele dar más problemas con firewalls o configuraciones de red.

Hoy en día se considera menos práctico, especialmente en entornos Linux por terminal. Solo es común en servidores Windows o configuraciones de hosting que lo requieren expresamente.

En este manual no cubrimos FTPS en profundidad porque SFTP es la opción recomendada en casi todos los casos prácticos.

TOP