Cómo instalar un SFTP server en Ubuntu paso a paso

Ubuntu es una plataforma segura y fiable para instalar un servidor SFTP. La distribución Linux ofrece herramientas y paquetes integrados que puedes utilizar para SFTP. Te mostramos cómo instalar y configurar un SFTP server en Ubuntu para la transferencia cifrada de datos.

Ubuntu SFTP server: requisitos del sistema

En la comparación FTP vs. SFTP, el protocolo SFTP es claramente la mejor opción. Basado en FTP, SFTP utiliza procedimientos criptográficos para el cifrado de datos. Por ello, se requieren componentes adicionales como Secure Shell (SSH) para su instalación. Para configurar un servidor SFTP en la versión actual Ubuntu 22.04 se deben cumplir los siguientes requisitos del sistema:

  • Procesador (CPU): 2 GHz (Dual-Core)
  • Memoria RAM: 4 GB
  • Espacio en disco duro: en función del tamaño de los datos
  • Sistema operativo: Ubuntu, usuario con privilegios de root
  • Paquete de software: OpenSSH
  • Conexión a Internet: para descargar los paquetes y conectarse al servidor SFTP
Consejo

Con un servidor Secure FTP de IONOS tendrás acceso a un hosting seguro de archivos, incluyendo copias de seguridad periódicas y asistencia las 24 horas.

Guía paso a paso para instalar un SFTP server en Ubuntu

Para instalar un servidor FTP compatible con SFTP, primero debes comprobar si OpenSSH está instalado. Por defecto, los paquetes ya están disponibles en Ubuntu. Si no es el caso, puedes obtener los paquetes del repositorio oficial.

Abre la terminal en tu sistema Ubuntu y ejecuta los siguientes comandos:

Paso 1. Comprueba que los paquetes OpenSSH están instalados

Utiliza esta entrada para listar todos los paquetes instalados, filtrando por ssh:

$ dpkg -l | grep ssh
bash

En nuestro ejemplo, dará lugar a este resultado:

ubuntu-sftp-server-openssh-packets.png
Terminal: paquetes OpenSSH instalados.

Si aparece una ii, significa que los paquetes están instalados.

Paso 2. Instala SSH

Si OpenSSH no está disponible, puedes instalarlo con el gestor de paquetes APT:

$ sudo apt install ssh
bash

Paso 3. Cambia la configuración SSHD

Tras la instalación, hay que adaptar el archivo de configuración del SSH daemon. Puedes abrirlo con el editor nano, por ejemplo:

$ sudo nano /etc/ssh/sshd_config
bash

A continuación, introduce las siguientes líneas:

Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
bash

Esto permite a los usuarios del grupo SFTP acceder a su directorio personal a través de SFTP.

Servidores dedicados
Rendimiento a través de innovación
  • Tu propio servidor en un hardware dedicado
  • Integración en el cloud y facturación por minuto
  • Respaldados por procesadores Intel® Xeon® y AMD

Paso 4. Reinicia el servicio SSH

Después de cambiar el archivo de configuración, se debe reiniciar el servicio SSH:

$ sudo systemctl restart sshd
bash

Paso 5. Crea un usuario y grupo SFTP

En el siguiente paso creamos el grupo sftpgroup y el usuario sftpuser, que por razones de seguridad solo pueden acceder al SFTP server de Ubuntu y no al servicio SSH.

$ sudo groupadd sftpgroup
bash

El nuevo usuario se asigna al grupo SFTP con la opción -G. La opción -d determina el directorio de inicio y -s regula el acceso al Shell.

$ sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser
bash

Paso 6. Crea una contraseña de usuario SFTP

Introduce una contraseña segura para el usuario SFTP con el comando passwd:

$ passwd sftpuser
bash

Paso 7. Configura chroot

La creación de un directorio chroot crea una sandbox para los procesos en ejecución. En primer lugar, se debe crear una nueva carpeta:

$ mkdir -p /srv/sftpuser
bash

A continuación, se asigna la propiedad al usuario root con chown:

$ sudo chown root /srv/sftpuser
bash

Asigna derechos de lectura y ejecución al grupo:

$ sudo chmod g+rx /srv/sftpuser
bash

A continuación, crea un subdirectorio y designa a sftpuser como propietario:

$ mkdir -p /srv/sftpuser/data
$ chown sftpuser:sftpuser /srv/sftpuser/data
bash

Esto permite al usuario SFTP subir archivos al subdirectorio data, pero solo tiene derechos limitados en el directorio sftpuser. Tendrá derechos de lectura, pero por razones de seguridad no tendrá derechos de escritura.

Paso 8. Conéctate al Ubuntu SFTP server

La conexión con el servidor SFTP puede establecerse a través de la línea de comandos SFTP o a través de un cliente FTP con GUI. En la terminal, introduce el comando sftp seguido del nombre de usuario y el nombre de host o la dirección IP del servidor SFTP.

$ sftp sftpuser@SERVER-IP
bash

Si se utiliza un puerto personalizado, se puede especificar de la siguiente manera:

$ sftp -P PORT ftpuser@SERVER-IP
bash

A continuación, se te pedirá que introduzcas la contraseña del usuario SFTP.

Paso 9. Carga archivos en el SFTP server

Los archivos se cargan en SFTP mediante el comando put.

Intenta transferir un archivo al directorio «/»:

put /path/to/file/on/local /
bash

El comando debería fallar porque es el directorio chroot para el que el usuario SFTP no tiene permiso de escritura.

Ahora prueba con la carpeta “data”:

put /path/to/file1/on/local1 /data/
bash

Paso 10. Abre los archivos en el SFTP server de Ubuntu

Puedes listar archivos en la línea de comandos SFTP con el comando ls:

ls /data/
bash

Aquí puedes ver qué archivos hay en el servidor SFTP:

ubuntu-sftp-server-file-list.png
Terminal: lista de archivos en el SFTP server.
Consejo

Te mostramos también cómo instalar un SFTP server en Windows.

¿Le ha resultado útil este artículo?
Page top