Transferir archivos a un VPS Linux con FileZilla (SFTP)

3 min
Hosting VPS/VDS

SFTP funciona dentro de tu conexión SSH actual, así que no necesita software adicional en el servidor ni otro puerto. En un VPS Linux Infrawire es la forma más segura de subir un sitio web o bajar copias de seguridad con un cliente gráfico como FileZilla. Esta guía cubre el acceso con contraseña y con clave, los permisos de archivos y un usuario limitado a SFTP.

📋 Requisitos previos

  • Un VPS Linux (Ubuntu 24.04, Debian 12, AlmaLinux 9 o Rocky 9) con SSH funcionando en el puerto 22.
  • La IP del VPS y la contraseña de root, disponibles en tu área de cliente.
  • FileZilla Client instalado en tu ordenador (el Client, no FileZilla Server).

1. Conectar rápidamente con contraseña

Para una primera prueba, usa la barra de conexión rápida de la parte superior de FileZilla:

  • Servidor: sftp://VPS_IP
  • Usuario: USER
  • Contraseña: tu contraseña
  • Puerto: 22

Acepta la clave del host la primera vez. El panel derecho muestra el árbol de archivos del servidor. Es mejor usar un usuario normal que root: un clic equivocado hará menos daño.

Bash
adduser USER usermod -aG sudo USER

En AlmaLinux o Rocky usa useradd -m USER, passwd USER y usermod -aG wheel USER.

2. Acceder con una clave SSH

Las claves son más seguras que las contraseñas y no se pueden adivinar por fuerza bruta. En tu ordenador, genera un par de claves y copia la parte pública al servidor.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

En FileZilla abre Editar > Preferencias > Conexión > SFTP > Añadir archivo de claves y elige tu clave privada (el archivo sin .pub). FileZilla puede ofrecerse a convertirla a su propio formato; acepta. Nunca compartas la clave privada.

3. Guardar la conexión en el Gestor de sitios

  1. Abre Archivo > Gestor de sitios y pulsa Nuevo sitio.
  2. Protocolo: SFTP - SSH File Transfer Protocol.
  3. Servidor: VPS_IP, Puerto: 22.
  4. Tipo de acceso: Normal para contraseña, o Archivo de clave para una clave.
  5. Usuario: USER. En la pestaña Avanzado define el directorio remoto por defecto, por ejemplo /var/www/example.com.
  6. Pulsa Conectar. El sitio queda guardado para la próxima vez.

Evita guardar contraseñas en un equipo que no controlas.

4. Ajustar propietario y permisos de los archivos web

Los archivos subidos suelen quedar con el propietario equivocado, lo que provoca errores 403 o 500. Asigna el directorio web a tu usuario y deja que el servidor web lo lea.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

En AlmaLinux y Rocky el grupo del servidor web es apache en lugar de www-data. Las carpetas en las que la aplicación deba escribir (subidas, caché) pueden ponerse en 775, con el grupo del servidor web como grupo propietario. Nunca uses chmod -R 777. En FileZilla también puedes hacer clic derecho en un archivo y elegir Permisos de archivo.

5. Opcional: un usuario solo SFTP encerrado en una carpeta

Para dar a un cliente acceso a una sola carpeta sin shell, usa un chroot. El propio directorio chroot debe pertenecer a root y no ser escribible por nadie más; si no, sshd rechaza el acceso.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

Añade este bloque al final de /etc/ssh/sshd_config:

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

Comprueba la sintaxis antes de recargar y mantén abierta tu sesión SSH actual hasta confirmar que un nuevo acceso funciona.

Bash
sshd -t systemctl reload ssh

El servicio se llama ssh en Ubuntu y Debian, y sshd en AlmaLinux y Rocky. El usuario restringido entra en /files y no ve nada más.

Verificación

Prueba desde una terminal antes de culpar a FileZilla:

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

Después sube un archivo con FileZilla y comprueba su propietario con ls -l /var/www/example.com.

Solución de problemas

  • Conexión rechazada o tiempo de espera agotado: comprueba que sshd está activo (systemctl status ssh), que el puerto está abierto en el cortafuegos y que elegiste SFTP, no FTP.
  • Permission denied (publickey): la clave no está en ~/.ssh/authorized_keys o los permisos son incorrectos. Corrige con chmod 700 ~/.ssh y chmod 600 ~/.ssh/authorized_keys.
  • Usuario enjaulado desconectado justo al entrar: la carpeta chroot no pertenece a root o es escribible por el grupo. Busca «bad ownership or modes for chroot directory» en journalctl -u ssh.
  • No se puede subir, permiso denegado en una carpeta: el usuario no es propietario del destino. Repite los comandos chown y chmod del paso 4.

✅ Ya puedes mover archivos de forma segura a tu VPS Linux con FileZilla.

Mantente al día con las últimas ofertas, descuentos y promociones especiales.

Ver promociones

Utilizamos cookies

Utilizamos cookies analíticas para mejorar su experiencia en nuestro sitio. No vendemos datos a terceros. Más información en nuestra política de privacidad.