How To Set Up An Sftp Server Linux Featured Image

Cómo configurar un servidor SFTP en Linux

La mayoría de las personas prefieren utilidades como FileZilla, WinSCP u otros programas FTP cuando necesitan transferir archivos hacia o desde servidores Linux. SFTP es una alternativa segura al protocolo FTP original. Realiza principalmente las mismas funciones que su versión no segura, pero con una capa adicional de cifrado. Para lograr esto, utiliza el protocolo SSH que le proporciona capacidades de encriptación. La configuración de un servidor SFTP en su sistema Linux implica varios pasos, que mostramos aquí.

¿Qué es SFTP?

SFTP (Protocolo seguro de transferencia de archivos) es un protocolo de red para transferir archivos de un cliente a un servidor. A diferencia de FTP (Protocolo de transferencia de archivos), SFTP utiliza el protocolo SSH (Secure Shell) para cifrar los datos que se envían. Fue desarrollado por los informáticos Tatu Ylönen y Sami Lehtinen, quienes también son responsables del desarrollo del protocolo SSH en la década de 1990. Sin embargo, la versión moderna es desarrollada por el IETF (Grupo de Trabajo de Ingeniería de Internet).

Puede describirse como un protocolo de sistema de archivos remoto, aunque su nombre sugiere que solo realiza operaciones de transferencia de archivos. Cuando se envía un archivo mediante SFTP desde un cliente a un servidor receptor, los datos se cifran antes de enviarse al destino. Si los datos que se envían son interceptados por un «intermediario», este tercero no puede descifrarlos fácilmente.

Instalación de SSH y el servidor OpenSSH

Estamos comenzando el proceso de configuración del servidor SFTP instalando SSH y el servidor OpenSSH.

La mayoría de las instalaciones de Linux ya tienen SSH instalado de forma predeterminada, pero en caso de que su sistema no lo tenga, puede instalarlo utilizando la herramienta de empaquetado avanzado. apt dominio:

Después de instalar SSH, puede verificar su versión ejecutando el ssh comando con el -V bandera:

Comprobación de la versión de Ssh

Puede instalar OpenSSH Server en sistemas Debian y Ubuntu, por ejemplo, utilizando el apt dominio:

sudo apt install openssh-server

Puede hacer lo mismo en Arch Linux usando el pacman dominio:

Creación de usuarios, grupos y directorios para SFTP

Es una recomendación común que los diferentes servicios en Linux deben usar sus propios usuarios, grupos y directorios.

Comience por crear un grupo para los usuarios de SFTP. Esto se logra mediante el uso de la groupadd dominio:

Puede crear un usuario y agregarlo al grupo que se creó usando el useradd mando y su -g bandera, que se utiliza para especificar el grupo del que formará parte el usuario:

sudo useradd -g sftp_group sftp_user

Después de crear el usuario, asígnele una contraseña usando el passwd dominio:

Cambio de contraseña de usuario de Sftp

Cree el directorio predeterminado para el usuario recién creado:

sudo mkdir -p /data/sftp_user/uploaded_files

Utilizar el chown Comando para dar al directorio los permisos necesarios:

sudo chown -R root:sftp_group /data/sftp_user
sudo chown -R sftp_user:sftp_group /data/sftp_user/uploaded_files

Configuración del servidor SSH

El siguiente paso para configurar un servidor SFTP es configurar el servidor SSH que utilizará.

Edite el archivo «sshd_config» que se encuentra en «/etc/ssh/» para que el usuario use el shell SFTP cuando se conecta al servidor en lugar del shell de SSH.

Puede editar fácilmente el archivo utilizando el editor Nano de uso común que se encuentra en muchas instalaciones de Linux de forma predeterminada:

sudo nano /etc/ssh/sshd_config

Busque la parte inferior del archivo y agregue lo siguiente:

Match Group sftp_group
ChrootDirectory /data/%u
ForceCommand internal-sftp

Editor Nano Editar configuración Sshd

Reinicie el servicio SSH:

sudo systemtl restart sshd

(Opcional) Cambio del puerto SFTP

Si desea cambiar el puerto que utiliza el servidor SFTP del valor predeterminado de 22 a la opción elegida, deberá editar el archivo «sshd_config» una vez más.

Una vez más, edite el archivo usando el editor Nano:

sudo nano /etc/ssh/sshd_config

Busque una línea en el archivo con el valor de puerto predeterminado de 22 comentado:

Puede eliminar el signo de almohadilla (#) que se usa para comentar la línea y agregar el valor de puerto que elija. En mi caso, estoy cambiando el valor a 1111:

Ahora simplemente guarde el archivo

Nano Editor Editar el número de puerto de configuración de Sshd

y reiniciar el servidor:

sudo systemctl restart sshd

Inicio de sesión y uso del servidor

Cuando el servidor está instalado y configurado, está listo para usar. Puede cargar archivos y descargarlos fácilmente, todo con una sesión cifrada proporcionada por SSH.

Antes de iniciar sesión, no está de más echar un vistazo al manual proporcionado:

manual de ftp

Inicie sesión en el servidor proporcionando el nombre de usuario y la IP del servidor o el nombre de host en el siguiente formato:

Además, puede especificar el puerto que utiliza su servidor SFTP (el predeterminado es 22) utilizando el -P bandera:

Cuando inicia sesión, se le recibe con un shell SFTP.

Ver un manual escribiendo help.

Comando de ayuda Sftp 1

Descargando archivos

Para descargar un archivo:

get /path/to/file/on/server

Ejemplo:

Esto se descargará a su directorio actual, en el que estaba localmente antes de iniciar sesión en el servidor. Para descargar a un directorio local específico:

get /path/to/file/on/server /path/to/local/folder

Para copiar directorios, debe agregar el -r parámetro, que significa recursivo, al comando.

get -r /bin /home/username/Desktop/bin

sftp-copiar-directorio

Recuerde agregar un nombre para el nuevo directorio que desea crear localmente, como «/home/username/Desktop/bin» en este caso. Si utiliza get -r /bin /home/username/Desktop, los archivos se copiarán directamente en el escritorio. Tenga en cuenta que son los archivos los que se copian y no el directorio en sí.

Subir archivos

Subir archivos o directorios sigue los mismos principios. La única excepción es que las rutas están invertidas, lo que significa que primero especifica el archivo/directorio local y luego la ruta remota.

Para empezar, cargue archivos al servidor usando el put dominio:

put /path/to/local/content /path/to/remote/location

Al cargar directorios (recursivo), recuerde que se aplica la misma regla de la sección anterior: en realidad son los archivos en el directorio los que se copian y no el directorio en sí. Especifique un nuevo nombre para un directorio en el que desea copiar esos archivos.

put -r /home/username/Desktop/bin bin

Esto crea un nuevo directorio llamado «bin» en el lado remoto.

Reanudar transferencias y usar rutas que contienen espacios

Cuando transfiere un archivo grande que se interrumpe, puede continuar reemplazando el comando anterior con reput y reget. Solo asegúrese de usar las mismas rutas que usó la última vez para que el origen y el destino coincidan exactamente.

reget /path/to/file/on/server /path/to/local/file
reput /path/to/local/file /path/to/file/on/server

Para reanudar las transferencias de directorio, simplemente agregue el -r parámetro:

reput -r /home/username/Desktop/bin bin

Si la ruta a un archivo contiene espacios, escríbalo entre comillas:

put "/home/username/My Documents/Files"

Otros usos

Puede listar los archivos y directorios usando el ls dominio:

Los permisos de los archivos también se pueden cambiar usando el chmod dominio:

chmod <PERMISSION> <FILE>

Además, puede crear un nuevo directorio utilizando el comando mkdir:

Preguntas frecuentes

1. ¿Necesito instalar un cliente SFTP?

En la mayoría de los casos no, ya que la mayoría de los sistemas Linux vienen con un cliente SFTP basado en terminal instalado de forma predeterminada.

2. ¿Puedo usar la autenticación de clave pública?

Sí, puede usar la autenticación de clave pública en lugar de una contraseña como método de autenticación. Configurarlo es bastante simple y proporciona seguridad adicional para su servidor.

3. ¿Puedo alojar simultáneamente un servidor SSH?

Sí. Sin embargo, deberá asegurarse de que su servidor SFTP no esté utilizando el mismo puerto que el servidor SSH.

Experto Geek - Tu Guía en Tendencias Tecnológicas