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 remotoscd carpeta
: cambiar de directorio remotolcd carpeta
: cambiar directorio localget archivo
: descargar archivoput archivo
: subir archivomget *.txt
: descargar varios archivosmput *.jpg
: subir varios archivosmkdir nombre
: crear carpeta en el servidorrm archivo
: borrar archivo remotoexit
: 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/
scp usuario@servidor:/ruta/archivo.txt ./
-r
):scp -r carpeta usuario@servidor:/ruta/
-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.