La transferencia de archivos es una tarea fundamental en el mundo digital, y aunque el Protocolo de Transferencia de Archivos (FTP) ha sido durante mucho tiempo el estándar, su falta de seguridad lo ha vuelto obsoleto en el entorno actual, cada vez más consciente de la protección de datos. Ante esta realidad, el Protocolo de Transferencia de Archivos Seguro (SFTP) emerge como una solución robusta y esencial. SFTP no es solo un método más seguro, sino que es el único protocolo de transferencia de archivos que protege contra ataques en cualquier punto del proceso de transferencia de datos, lo que lo convierte en el protocolo preferido para la transmisión de información sensible.
Comprendiendo SFTP: Seguridad y Eficiencia
A diferencia del FTP tradicional, que utiliza dos canales distintos para el intercambio de comandos y datos, SFTP opera a través de un único canal cifrado. Durante la transferencia de archivos, todos los datos se dividen en paquetes y se envían a través de esta conexión segura. La información confidencial se cifra, volviéndose ilegible para cualquier observador no autorizado durante su tránsito entre el cliente y el servidor. En esencia, el contenido original, transmitido en texto plano, es reemplazado por una cadena de caracteres incoherentes (texto cifrado), que solo el destinatario con la clave de descifrado adecuada puede interpretar. Este mecanismo garantiza la confidencialidad y previene cualquier acceso no autorizado.

El Protocolo de Transferencia de Archivos Seguro, SFTP, es un subsistema del Protocolo Seguro de Shell (SSH). Esta inherente relación con SSH le permite soportar todos los métodos de autenticación que SSH ofrece, proporcionando una capa adicional de seguridad y flexibilidad. El puerto estándar utilizado por SFTP para establecer una conexión segura es el 22, el mismo que utiliza SSH.
Conexión y Navegación Básica con SFTP desde la Consola
Activar y utilizar SFTP desde la consola es un proceso directo, especialmente si se comprende la sintaxis de los comandos básicos. Antes de iniciar cualquier transferencia, es crucial verificar los directorios de trabajo tanto en el sistema local como en el remoto.
Para iniciar una sesión SFTP, se utiliza el comando sftp seguido del nombre de usuario y la dirección del servidor remoto. Por ejemplo:
sftp usuario@servidor_remotoUna vez establecida la conexión, te encontrarás en un prompt interactivo de SFTP. Para verificar el directorio de trabajo actual en el servidor remoto, puedes usar el comando pwd. Para ver el contenido de un directorio, se utiliza ls. En el lado local, el comando lpwd muestra el directorio de trabajo local, y lls lista los archivos y directorios locales.
La navegación entre directorios se realiza de manera similar a la de un shell estándar. Para cambiar de directorio en el servidor remoto, se usa cd nombre_del_directorio. En el sistema local, el comando equivalente es lcd nombre_del_directorio.
Comandos para la Gestión de Directorios
SFTP también ofrece comandos para la gestión de directorios tanto en el sistema remoto como en el local. Para crear un nuevo directorio en el servidor remoto, se emplea el comando mkdir nombre_del_directorio. Por otro lado, para eliminar un directorio del servidor remoto, se utiliza el comando rmdir nombre_del_directorio. La creación de directorios en el sistema local se realiza con lmkdir nombre_del_directorio.
Transferencia de Archivos: Del Servidor Remoto a la Máquina Local
Una de las operaciones más comunes es la transferencia de archivos desde un servidor remoto a tu máquina local. Para descargar un archivo específico, se utiliza el comando get. La sintaxis básica es get /DirectorioRemoto/nombre_del_archivo.
Por ejemplo, si deseas copiar el archivo /etc/xinetd.conf desde el servidor remoto a tu máquina local, el comando sería:
get /etc/xinetd.confUna vez completada la descarga, encontrarás el archivo xinetd.conf en el directorio de trabajo actual de tu máquina local.

Para descargar múltiples archivos que comparten un patrón común, SFTP proporciona el comando mget. Si deseas descargar todos los archivos con la extensión .conf de un directorio remoto llamado /etc a tu directorio de trabajo local actual, usarías el siguiente comando:
mget /etc/*.confTras la ejecución de este comando, todos los archivos .conf se encontrarán en tu directorio local.
Transferencia de Archivos: De la Máquina Local al Servidor Remoto
De manera análoga a la descarga, la carga de archivos desde tu máquina local a un servidor remoto se realiza con comandos específicos. Para copiar un archivo de la máquina local al servidor remoto, se utiliza el comando put. La sintaxis para esta operación es put /ruta/local/del/archivo /DirectorioRemoto/.
Por ejemplo, para mover el archivo example.txt ubicado en /home/user-name/ de tu máquina local al directorio raíz (/root/) del servidor remoto, ingresarías:
put /home/user-name/example.txt /root/Tras la ejecución, el archivo example.txt estará disponible en el directorio raíz del servidor remoto.
Para transferir varios archivos de forma simultánea desde tu máquina local al servidor remoto, puedes emplear el comando mput. La sintaxis es similar a mget, pero invierte la dirección de la transferencia:
mput /ruta/local/*.txt /DirectorioRemoto/Este comando transferirá todos los archivos con extensión .txt desde tu directorio local al directorio especificado en el servidor remoto.
Gestión Avanzada de Archivos y Permisos
SFTP no solo permite la transferencia de archivos, sino también la gestión de los mismos en el servidor remoto. Cambiar el nombre de un archivo remoto es un proceso sencillo con el comando rename. La sintaxis es rename nombre_antiguo_archivo nombre_nuevo_archivo.
Si necesitas eliminar un archivo en el servidor remoto, el comando a utilizar es rm nombre_del_archivo.

La gestión de permisos de archivos es una característica crucial para la seguridad y la funcionalidad. El comando chmod se utiliza para cambiar los permisos de un archivo. SFTP soporta el modo numérico estándar de chmod. Por ejemplo, chmod 764 NombredeArchivo asigna permisos de lectura, escritura y ejecución para el propietario (7), lectura y ejecución para el grupo (6), y solo lectura para otros usuarios (4).
Los valores numéricos para los permisos son:
- Lectura (r): 4
- Escritura (w): 2
- Ejecución (x): 1
- Sin permisos: 0
Para asignar permisos, se suman los valores correspondientes para cada clase de usuario (propietario, grupo, otros). Por ejemplo, 7 (4+2+1) significa lectura, escritura y ejecución; 6 (4+2) significa lectura y escritura; 4 (4) significa solo lectura.
De manera similar, los comandos chown y chgrp permiten modificar el propietario y el grupo de un archivo, respectivamente. La sintaxis es chown userid nombre_del_archivo y chgrp groupid nombre_del_archivo. El userid o groupid puede ser un nombre de usuario o un ID numérico.
Consideraciones de Seguridad y Configuración Específica (Google Merchant Center)
En ciertos contextos, como la carga de feeds de productos a plataformas como Google Merchant Center, la configuración de SFTP requiere pasos adicionales. Para utilizar este método, es necesario crear una cuenta SFTP específica dentro de la plataforma. Es importante tener en cuenta que las credenciales de esta cuenta SFTP serán distintas de las credenciales de la cuenta principal de Google Merchant Center.
🛍️ Cómo usar GOOGLE MERCHANT CENTER para potenciar las ventas de tu ecommerce en 2025 📈
Al generar una contraseña para la cuenta SFTP de Merchant Center, se te advertirá que, por motivos de seguridad, esta contraseña no se volverá a mostrar. Por lo tanto, es imperativo almacenarla en un lugar seguro inmediatamente después de su generación. La cuenta SFTP de Merchant Center puede tardar algunas horas en activarse completamente después de su creación o modificación.
Al conectarse a servidores SFTP específicos, como partnerupload.google.com, la primera vez que se establece la conexión, es posible que el cliente SFTP muestre un mensaje indicando la imposibilidad de establecer la autenticidad del host y presente la huella digital de la clave RSA. Se te preguntará si deseas continuar la conexión. Confirmar con "sí" es necesario para proceder.
Carga de Archivos a Google Merchant Center
Para cargar archivos a través de SFTP en Google Merchant Center, una vez conectado, se utiliza el comando put. La sintaxis general es put {tu_directorio_incluyendo_el_nombre_del_archivo}. Por ejemplo:
put /home/usuario/mis_productos.xml /ruta/del/feed/Después de unos momentos, se mostrará una actualización del estado de la carga y, al finalizar, recibirás una confirmación. Es importante tener en cuenta que el tamaño del archivo para la carga a través de SFTP en Merchant Center debe ser inferior a 4 gigabytes (GB), ya sea en formato comprimido o sin comprimir.
En el contexto de feeds genéricos, se sube un "archivo descriptor" para informar al sistema sobre el tipo de feed que se está cargando. Cada nombre de archivo descriptor debe ser único. Posteriormente, se suben todos los archivos del feed correspondientes al tipo de datos especificado en el archivo descriptor. Los nombres de archivo y las rutas de acceso deben coincidir exactamente con lo especificado en el archivo descriptor. Es recomendable utilizar la menor cantidad de fragmentos de archivo posible y comprimir los feeds con gzip si es necesario.
Las claves SSH, cuando se utilizan para la autenticación en lugar de contraseñas, otorgan acceso a todos los archivos de la cuenta y no se pueden configurar para limitar el acceso a carpetas específicas. Por lo tanto, es crucial almacenar estas claves de forma segura. Al gestionar claves SSH, se puede acceder a la clave privada, copiar su contenido y guardarlo en un archivo local. El nombre de usuario y el nombre de host para la conexión SFTP suelen ser los mismos que los de las credenciales SSH disponibles en las herramientas de gestión del servidor.
Lista de Comandos SFTP Útiles
Para facilitar la operación, aquí se presenta una lista resumida de algunos comandos SFTP comúnmente utilizados:
sftp usuario@servidor: Iniciar sesión en un servidor SFTP.pwd: Mostrar el directorio de trabajo actual en el servidor remoto.ls: Listar el contenido del directorio actual en el servidor remoto.cd directorio: Cambiar el directorio de trabajo en el servidor remoto.get archivo_remoto: Descargar un archivo del servidor remoto al local.mget patron: Descargar múltiples archivos que coinciden con un patrón.put archivo_local [directorio_remoto]: Subir un archivo del local al remoto.mput patron [directorio_remoto]: Subir múltiples archivos que coinciden con un patrón.mkdir directorio: Crear un directorio en el servidor remoto.rmdir directorio: Eliminar un directorio en el servidor remoto.rm archivo: Eliminar un archivo en el servidor remoto.rename archivo_viejo archivo_nuevo: Renombrar un archivo en el servidor remoto.chmod modo archivo: Cambiar los permisos de un archivo en el servidor remoto.chown usuario archivo: Cambiar el propietario de un archivo en el servidor remoto.chgrp grupo archivo: Cambiar el grupo propietario de un archivo en el servidor remoto.lcd directorio: Cambiar el directorio de trabajo en el sistema local.lpwd: Mostrar el directorio de trabajo actual en el sistema local.lls: Listar el contenido del directorio actual en el sistema local.! comando_shell: Ejecutar un comando en el shell del sistema local.helpo?: Mostrar ayuda sobre los comandos SFTP.quitobye: Salir de la sesión SFTP.
Dominar estos comandos permite una gestión eficiente y segura de la transferencia de archivos a través de la consola, aprovechando la robustez que SFTP ofrece frente a protocolos menos seguros.