Cómo establecer la conexión con el servidor SFTP
14:15, 27.05.2021
Es imposible imaginar trabajar con un servidor remoto sin un sistema seguro de transferencia de archivos entre el sistema y el usuario - y es difícil hacer algo sin SFTP. Para que el protocolo funcione correctamente, es de vital importancia configurar correctamente SFTP con diferentes versiones tanto de Linux como de Windows. En este artículo, le mostraremos cómo hacerlo de forma rápida y sencilla.
¿Qué es SFTP?
Protocolo de Transferencia de Archivos SSH - así es como significa la abreviatura SFTP. El nombre completo muestra claramente la característica principal del protocolo: está basado en la tecnología Secure Shell. Esto garantiza que la transmisión de toda la información esté encriptada, desde archivos hasta nombres de usuario y contraseñas. Incluso en FTPS (FTP con SSL), por no hablar del FTP normal, hay más restricciones. Por cierto, si entras en detalles, SFTP no está relacionado en absoluto con FTP: tienen bases tecnológicas diferentes.
Además de ser altamente seguro, el Protocolo de Transferencia de Archivos SSH tiene otras ventajas:
A parte, es necesario precisar: el protocolo SFTP se utiliza en sistemas UNIX, y a menudo las utilidades estándar ya disponen tanto de un cliente como de un servidor SSH.
¿Cómo se configura SFTP?
Instalar y configurar el Protocolo de Transferencia de Archivos SSH no es demasiado difícil, pero la historia debe dividirse en dos direcciones - dependiendo del sistema operativo utilizado.
Configurando un Servidor con Protocolo de Transferencia de Archivos SSH en Linux
En primer lugar, debe instalar el paquete SSH en el lado del servidor de OpenSSH y en el lado del usuario. La primera tarea se resuelve con los siguientes comandos:
- Ubuntu y Debian: sudo apt install openssh-server
- CentOS y RHEL: sudo yum -y install openssh-server openssh-clients
Y para organizar el acceso desde un ordenador, necesita un comando de la siguiente forma:
- sudo apt install ssh
Después de eso, usted puede ir directamente a la configuración de SFTP. Todo el trabajo debe dividirse en varias etapas:
1.Creación de grupos y usuarios. Al crear usuarios y dividirlos en grupos, puede ajustar sus derechos, capacidades y restricciones de acceso a un directorio concreto del servidor. Para ello, debe hacer lo siguiente:
- crear un grupo: sudo groupadd GROUPNAME
- añadir un usuario al grupo: sudo useradd -g GROUPNAME USERNAME
- establecer la contraseña del usuario: sudo passwd PASSWORD
2. Creación de directorios. Si el servidor tiene un directorio raíz (llamémoslo "catálogo", por ejemplo), cada usuario sólo puede tener acceso a una determinada "carpeta propia", que es a la que accede al iniciar sesión. En este caso, puede configurar SFTP para que el usuario pueda ver el contenido de la carpeta, pero el archivo se carga en una sección separada (por ejemplo, 'loadfolder'). Necesitará los siguientes comandos:
sudo mkdir -p / catalog / USERNAME/loadfolder
sudo chown -R root.GROUPNAME/catalog/USERNAME
sudo chown -R USERNAME.GROUPNAME/catalog/USERNAME/carpeta de carga
3. Configurar sshd_config. Esto es necesario por dos motivos. Por un lado, el usuario tendrá SFTP abierto (y no el shell SSH habitual). Por otro lado, no podrá subir de nivel en el directorio y ver las secciones de otros usuarios. Para ello, agregue el siguiente código en el / etc / ssh / sshd_config archivo:
Grupo Match GROUPNAME
ChrootDirectory/catalog/% u
ForceCommand interno-sftp
4. Reiniciar. Para que todo el sistema funcione, queda reiniciarlo:
sudo systemctl restart sshd
Eso es todo - ¡La configuración SFTP de Linux está completa! El inicio de sesión es similar al mismo comando bajo SSH. Utilice la sintaxis especial para gestionar el contenido del servidor:
COMANDO [ORIGEN] [DESTINO]
Estos son algunos de los ejemplos más utilizados:
- descargar del servidor remoto al local: GET foto1.jpg ~/Fotos
- descargar de local a remoto: PUT ~/precios/precio.pdf cargarcarpeta/
- eliminar un archivo de un servidor remoto: RM carpeta_carga/ archivo_325.xlsx
Configuración de un servidor con el protocolo de transferencia de archivos SSH en Windows
Al principio, los sistemas operativos de escritorio y servidor de Microsoft no soportaban SFTP, por lo que se necesitaban herramientas de terceros para trabajar con él. Pero hoy en día ya existe un paquete oficial para estas tareas: Win32-OpenSSH. El inicio y la configuración dependen de la versión del sistema operativo que se tenga instalada.
1. Windows Server 2019 o Windows 10 1803+
Estas opciones de SO de Microsoft ofrecen el escenario más sencillo para iniciar un servidor SFTP porque Win32-OpenSSH ya forma parte de ellos. Hay dos formas de instalar:
- a través de PowerShell: establezca un cmdlet como Add-WindowsCapability -Online -Name OpenSSH.Server *.
- a través de la interfaz: Configuración "Apps" Características opcionales "Añadir una característica" Open SSH Server "Instalar
Queda por averiguar las direcciones en las que se encontrarán todos los:
- archivos ejecutables: C:\Windows\System32\OpenSSH\
- archivo de configuración: C:\ProgramData\ssh\
- registro: C:\Windows\System32\OpenSSH\Logs\sshd.log\
- claves:%USERNAME%\.ssh\
2. Windows Server 2016/2012 R2
En este SO, al igual que en las primeras versiones de Windows 10, para configurar SFTP es necesario descargar OpenSSH: busca la versión para un sistema de 64 bits en GitHub. Después de descomprimir el archivo en el directorio deseado (por ejemplo, C:\catalog_OpenSSH), es necesario realizar una serie de procedimientos:
- Abra PowerShell como administrador y navegue hasta el directorio de destino que creó anteriormente con el cmdlet Cd C:\catalog_OpenSSH. A continuación, debe añadirse la ruta al mismo a la variable de entorno Path.
- Inicie la instalación con el comando \Install-sshd.ps1 (el éxito será confirmado por un mensaje con letras verdes). Después de eso, debe generar claves para iniciar el servicio SSH especificando: ssh-keygen.exe -A
- En PowerShell, inicie el autoarranque del servicio SSH con dos comandos secuenciales: Set-Service -Name sshd -StartupType 'Automatic' seguido de Start-Service sshd en una nueva línea.
- Abra el puerto TCP 22 para el tráfico entrante al servidor SSH. Esto se puede hacer en el cortafuegos a través de PowerShell con el comando New-NetFirewallRule -Protocolo TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
- Abra el archivo de configuración (se encuentra en C:\ProgramData\SSH\) y asegúrese de que el archivo requerido está correctamente especificado en la directiva sftp Subsystem - es decir, sftp-server.exe.
Después de configurar SFTP en Windows, todo lo que queda es hacer una serie de cambios en el archivo de configuración. He aquí algunos ejemplos estándar:
- AllowGroups corp\admingroup # Permite el acceso a OpenSSH a los usuarios del grupo especificado.
- AuthenticationMethods password # niega las claves SSH (el acceso será sólo por contraseña de usuario)
- ForceCommand internal-sftp #
- ChrootDirectory C:\inetpub\wwwroot\ftpfolder # crea y establece el directorio de inicio de sesión para el usuario SFTP
Después de todos los ajustes, inicie un cliente SFTP (por ejemplo, WinSCP), introduzca el tipo y nombre del servidor, las credenciales en él - e inicie sesión (la primera vez que se conecte, debería ver un mensaje de que la clave de host no está en la caché). Si se abre la interfaz familiar del administrador de archivos con el directorio de usuario en el servidor, ¡entonces todo está configurado correctamente!
En lugar de P.D.
La práctica lo demuestra: aunque la configuración de SFTP es bastante sencilla, en muchos casos los usuarios tienen diversas preguntas y situaciones no habituales. Para entenderlos, vale la pena considerar la ayuda competente - en forma de soporte técnico profesional del proveedor. Nosotros en HostZealot prestamos la máxima atención a ello. Tanto si pide un VPS para Windows como para Linux, puede confiar en los consejos de nuestros especialistas - ¡le ayudarán no sólo con la depuración del Protocolo de Transferencia de Archivos SSH, sino también con cualquier otra tarea de configuración de su servidor!