Acceso SFTP seguro a tu VPS: guía completa de configuración

acceso SFTP seguro

📅 Publicado el 4 de septiembre, 2026 · Por Equipo RedServicio

Qué es SFTP y por qué deberías usarlo

El acceso SFTP seguro (SSH File Transfer Protocol) es, con diferencia, la forma más sensata de mover archivos entre tu equipo y un servidor VPS. El FTP de toda la vida envía credenciales y datos en texto plano. SFTP no: cifra toda la comunicación apoyándose en SSH. Tus contraseñas y el contenido de los archivos dejan de ser legibles para cualquiera que sepa escuchar en la red.

Hay otra ventaja que se suele pasar por alto. SFTP usa un solo puerto (el 22 por defecto), así que configurar el firewall es casi trivial. Con FTP en modo activo/pasivo tienes que abrir rangos amplios de puertos, y cada puerto abierto es una puerta más que vigilar.

Tip clave: si todavía tienes FTP plano corriendo en tu servidor, desactívalo. Ya. Alguien conectado a tu misma red pública puede capturar tus credenciales en segundos con un sniffer básico.

Requisitos previos para configurar el acceso SFTP seguro

Necesitas poco, pero conviene tenerlo claro antes de empezar:

  • Un VPS con acceso root o un usuario con privilegios sudo (Ubuntu, Debian, CentOS o similar).
  • Un cliente SFTP en tu equipo: FileZilla, WinSCP (Windows) o el comando sftp que ya traen Linux y macOS.
  • Acceso SSH al servidor para poder editar configuraciones.

Si tu proveedor de hosting no ofrece SSH en sus planes, quizá sea buen momento para plantearte una migración. En RedServicio, todos nuestros planes de VPS incluyen acceso SSH completo y soporte 24/7 para acompañarte en este tipo de configuraciones.

Paso 1: conecta a tu VPS por SSH

Abre una terminal y conéctate:

ssh root@TU_IP_DEL_SERVIDOR

Dentro, actualiza el sistema antes de tocar nada sensible:

sudo apt update && sudo apt upgrade -y

Paso 2: crea un usuario dedicado para SFTP

Transferir archivos como root es una mala práctica. Siempre. Crea un usuario específico:

sudo adduser usuarioftp

Si ese usuario necesita escribir en el directorio de tu web, añádelo al grupo correspondiente o cambia la propiedad del directorio. En un servidor con Nginx, por ejemplo:

sudo chown -R usuarioftp:www-data /var/www/tudominio.com

Verifica que OpenSSH está instalado

SFTP viene incluido con OpenSSH, que casi siempre está instalado de fábrica. Compruébalo:

sudo systemctl status ssh

¿No está activo? Instálalo con sudo apt install openssh-server y actívalo al arranque con sudo systemctl enable ssh.

Paso 3: configura la autenticación con claves SSH

Las contraseñas son el vector de ataque más común en servidores expuestos a Internet. No es una exageración: revisa cualquier log de auth y verás miles de intentos. Las claves SSH eliminan ese riesgo, porque la autenticación se apoya en un par de claves criptográficas.

Genera tu par de claves en tu equipo local

ssh-keygen -t ed25519 -C "sftp-tu-nombre"

Ed25519 es más moderno y rápido que RSA. Se generan dos archivos: la clave privada, que nunca —nunca— debe salir de tu equipo, y la clave pública.

Copia la clave pública al servidor

ssh-copy-id usuarioftp@TU_IP_DEL_SERVIDOR

Si no tienes ese comando (pasa en Windows), copia manualmente el contenido de tu clave pública al archivo ~/.ssh/authorized_keys del servidor y ajusta los permisos:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Desactiva la autenticación por contraseña (opcional pero recomendado)

Edita la configuración de SSH:

sudo nano /etc/ssh/sshd_config

Y deja estas directivas así:

  • PasswordAuthentication no
  • PubkeyAuthentication yes

Reinicia el servicio con sudo systemctl restart ssh. Un detalle importante: mantén abierta la sesión actual mientras pruebas la conexión nueva. Si algo falla, no te quedarías fuera de tu propio servidor.

Paso 4: encierra al usuario SFTP en un entorno chroot

Si el usuario solo debe transferir archivos, sin shell completo, puedes limitarlo a su directorio home con chroot. Añade al final de /etc/ssh/sshd_config:

Match User usuarioftp
ForceCommand internal-sftp
ChrootDirectory /home/usuarioftp
AllowTcpForwarding no
X11Forwarding no

Ojo con un detalle: el directorio chroot debe ser propiedad de root y no escribible por otros (chmod 755). Para que el usuario pueda subir cosas, crea una subcarpeta:

sudo mkdir /home/usuarioftp/uploads && sudo chown usuarioftp:usuarioftp /home/usuarioftp/uploads

Reinicia SSH y comprueba que el usuario conecta pero no puede navegar fuera de su directorio.

Paso 5: refuerza la seguridad del servidor SSH

Las claves, solas, no bastan. Algo más que conviene aplicar:

  1. Cambia el puerto SSH por defecto (22) por uno no estándar editando la directiva Port en sshd_config. Los ataques automatizados bajan de forma drástica.
  2. Instala Fail2ban (sudo apt install fail2ban) para bloquear IPs que fallen repetidamente en la autenticación.
  3. Configura un firewall (UFW o firewalld) permitiendo solo los puertos necesarios: sudo ufw allow TU_PUERTO_SSH.
  4. Desactiva el root para conexiones remotas con PermitRootLogin no.
  5. Revisa los logs de vez en cuando en /var/log/auth.log. Verás cosas interesantes.
Consejo RedServicio: nuestros VPS incluyen firewall gestionado y monitoreo continuo. Si administrar la seguridad de un servidor no va contigo, nuestro equipo de soporte 24/7 puede encargarse de la configuración cuando lo necesites.

Paso 6: conéctate con tu cliente SFTP favorito

  • Servidor: sftp://TU_IP_DEL_SERVIDOR
  • Puerto: 22 (o el que hayas configurado)
  • Usuario: usuarioftp
  • Autenticación: clave privada (en FileZilla, en Edición > Ajustes > SFTP)

También puedes probar desde la terminal: sftp -P TU_PUERTO usuarioftp@TU_IP_DEL_SERVIDOR.

Errores comunes y cómo solucionarlos

  • Permission denied (publickey): casi siempre son los permisos. Revisa authorized_keys (600) y .ssh (700).
  • Connection refused: ¿está activo el servicio SSH? ¿El firewall deja pasar el puerto?
  • Could not chroot: el directorio chroot no puede ser escribible por el usuario; devuelve la propiedad a root.

Preguntas frecuentes

¿SFTP y FTPS son lo mismo?
No, aunque se confunden a menudo. SFTP se apoya en SSH; FTPS es FTP sobre TLS. SFTP suele ser más sencillo de configurar y solo requiere un puerto.

¿Puedo usar SFTP con WordPress?
Sí, y de hecho es recomendable. Define las constantes FS_METHOD y las credenciales SFTP en wp-config.php y las actualizaciones se harán de forma segura.

¿Las claves SSH caducan?
No caducan solas. Aun así, conviene rotarlas cada 6-12 meses y revocar las que ya no uses.

Conclusión

Montar un acceso SFTP seguro lleva menos de una hora y marca la diferencia entre un servidor vulnerable y uno que aguanta. Claves SSH, usuario dedicado con chroot, puerto cambiado, Fail2ban: cada capa suma, y ninguna es complicada. Lo he visto en suficientes servidores para saberlo: casi ninguna intrusión empieza con algo sofisticado; empieza con una contraseña débil en un puerto que nadie revisaba.

Dos hábitos que te ahorrarán sustos: mantén siempre una sesión abierta mientras cambias cosas en SSH, y documenta cada ajuste que hagas. Las auditorías futuras te lo agradecerán. Y si prefieres dedicarte a tu proyecto y dejar el servidor en otras manos, en RedServicio encontrarás VPS de alto rendimiento con soporte técnico 24/7 dispuesto a echarte un cable en cada paso.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Página GratisCrea tu web gratis

ClisecSeguridad informática

Scroll al inicio