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
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
bashEn nuestro ejemplo, dará lugar a este resultado:
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
bashPaso 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
bashA continuación, introduce las siguientes líneas:
Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
bashEsto permite a los usuarios del grupo SFTP acceder a su directorio personal a través de SFTP.
Tu propio servidor en un hardware dedicado, con 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
bashPaso 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
bashEl 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
bashPaso 6. Crea una contraseña de usuario SFTP
Introduce una contraseña segura para el usuario SFTP con el comando passwd
:
$ passwd sftpuser
bashPaso 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
bashA continuación, se asigna la propiedad al usuario root con chown
:
$ sudo chown root /srv/sftpuser
bashAsigna derechos de lectura y ejecución al grupo:
$ sudo chmod g+rx /srv/sftpuser
bashA continuación, crea un subdirectorio y designa a sftpuser
como propietario:
$ mkdir -p /srv/sftpuser/data
$ chown sftpuser:sftpuser /srv/sftpuser/data
bashEsto 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
bashSi se utiliza un puerto personalizado, se puede especificar de la siguiente manera:
$ sftp -P PORT ftpuser@SERVER-IP
bashA 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 /
bashEl 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/
bashPaso 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/
bashAquí puedes ver qué archivos hay en el servidor SFTP:
Te mostramos también cómo instalar un SFTP server en Windows.