Configurar el servidor SFTP en Windows

Olorunfemi Akinlua 15 febrero 2024
  1. Configurar el servidor SFTP para Windows más antiguo
  2. Configurar el servidor SFTP para Windows más reciente
  3. Use WinSCP para instalar y configurar el cliente SFTP
Configurar el servidor SFTP en Windows

Los servidores SFTP nos permiten acceder a sus archivos y contenido a través del Protocolo de transferencia de archivos SSH, un protocolo de red seguro. Dentro de nuestros entornos de sistema operativo, podemos configurar servidores SFTP para permitirnos recuperar y enviar recursos hacia y desde él.

Este artículo discutirá la configuración de servidores SFTP en Windows utilizando el software WinSCP.

Configurar el servidor SFTP para Windows más antiguo

Para configurar un servidor SFTP en Windows, deberá instalar OpenSSH, que puede descargar desde PowerShell GitHub. Puede consultar esta guía de instalación para entornos Linux.

Puede descargar el archivo msi o zip, pero solo usaremos el archivo msi en este artículo.

  • Instale el archivo msi. Luego, vaya a Servicios y verifique el estado del Servidor OpenSSH y Agente de autenticación OpenSSH.

    Servicios Automáticos

  • Si el Estado y el Tipo de inicio no son en ejecución y Automático, haga clic derecho en ambos servicios y seleccione Propiedades.

    Propiedades

  • Cambie el Tipo de inicio a Automático, haga clic en Iniciar y seleccione Aceptar.

    Tipo de inicio

  • Haga lo mismo para el Agente de autenticación OpenSSH; ahora, ambos servicios deberían estar En ejecución y Automático.

    Agente de autenticación OpenSSH

Configurar el servidor SFTP para Windows más reciente

  • Para Windows más reciente, puede ir a Configuración> Aplicaciones> Funciones opcionales para obtener OpenSSH.

    Características opcionales

  • Seleccione Ver funciones y busque Servidor OpenSSH en el cuadro de diálogo Agregar una función opcional.

    Agregar una función opcional

  • Seleccione la opción de casilla de verificación Servidor OpenSSH y haga clic en Instalar.

    Servidor OpenSSH

  • Luego, configure el servidor SSH usando el siguiente comando de PowerShell para permitir las conexiones entrantes al servidor.
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\\Windows\\System32\\OpenSSH\\sshd.exe"
    
  • Después de la configuración, iniciemos el servicio Servidor OpenSSH. Para configurar eso, debe buscar Servicios dentro de la barra de búsqueda.

    Búsqueda de servicios

  • Busque Servidor OpenSSH dentro de la lista de servicios de Windows.

    Servicios del servidor OpenSSH

  • Haga clic derecho en el servicio y seleccione Propiedades.

    Propiedades

  • Cambie el Tipo de inicio a Automático, haga clic en Iniciar y seleccione Aceptar.

    Tipo de inicio

  • Haga lo mismo para el Agente de autenticación OpenSSH; ahora, ambos servicios deberían estar En ejecución y Automático.

    Agente de autenticación OpenSSH

Use WinSCP para instalar y configurar el cliente SFTP

WinSCP es un software GPL-3.0 solamente que es libre de usar y modificar. Nos permite realizar transferencias seguras de archivos a través de diferentes protocolos, incluidos SSH File Transfer y Amazon S3.

Está disponible solo en Windows y se puede descargar desde su página de descarga.

  • Tras la descarga, ejecute el archivo de instalación y seleccione el Modo de instalación preferido.

    Seleccione el modo de instalación

  • Acepte el Acuerdo de licencia y seleccione la opción Instalación típica.

    Instalación típica

  • Seleccione su estilo de interfaz de usuario preferido, pero usaremos el Comandante en este artículo.

    Comandante

  • Luego, haga clic en Instalar e inicie la aplicación WinSCP.

    Instalar

  • Al iniciar, debería ver una pantalla similar a la siguiente.

    Pantalla de inicio

  • Complete el nombre de host; utilice host local. Utilice el número de puerto predeterminado 22 e introduzca el nombre y la contraseña de su ordenador. Después de eso, haga clic en el botón Iniciar sesión.

    Pantalla de relleno

  • Aparecerá el siguiente cuadro de diálogo y deberá seleccionar .

    Diálogo de pantalla

  • Si tiene éxito, debería ver la siguiente pantalla.

    Exitoso

  • Si no tiene éxito, es posible que vea un cuadro de diálogo como el siguiente porque su servicio OpenSSH no se está ejecutando y necesita iniciar los dos servicios OpenSSH indicados anteriormente.

    Fracasado

  • Ahora, podemos configurar una autenticación basada en clave pública usando el comando ssh-keygen.
    ssh-keygen
    

    La salida del comando está debajo.

    Generating public/private rsa key pair.
    Enter file in which to save the key (C:\Users\akinl/.ssh/id_rsa):
    Created directory 'C:\Users\akinl/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\akinl/.ssh/id_rsa.
    Your public key has been saved in C:\Users\akinl/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Ryrpy5HHTT1NK2OFzT3NjoIwORbzNV7/BfBfPLhHCEk akinl@Olorunfemi-PC
    The key's randomart image is:
    +---[RSA 3072]----+
    |        o .E=.o  |
    |         = +.Bo*.|
    |        * o oo*+O|
    |       o * o +o=*|
    |      o S + B.+.+|
    |     . + + . =.  |
    |      + o .      |
    |     . +         |
    |      o          |
    +----[SHA256]-----+
    

    Cuando la herramienta ssh-keygen solicita una frase de contraseña, puede ingresar una, pero no la usamos para este artículo. El ssh-keygen creó un directorio oculto llamado .ssh y guardó el par de claves dentro del archivo id_rsa.pub bajo .ssh.

    La ruta completa de la clave pública es C:\Users\akinl/.ssh/id_rsa.pub.

    id_rsa

    La clave pública es el archivo id_rsa.pub, y la clave privada es el id_rsa.

  • Para vincular las claves públicas y privadas al WinSCP, necesitamos crear un archivo llamado authorized_keys dentro de la carpeta .ssh. Copie el contenido de la clave pública, id_rsa.pub, en el archivo authorized_keys y guarde los cambios; puede usar un editor de texto como el Bloc de notas.

    llaves_autorizadas

  • Debe haber al menos tres archivos (authorized_keys, id_rsa y id_rsa.pub) dentro de su directorio .ssh.

    Directorio SSH

  • Para mantener el archivo authorized_keys seguro y solo accesible para los administradores o usuarios principales, debe configurar la Lista de control de acceso (ACL). Use el siguiente comando para configurar el control de acceso.
    icacls.exe "C:\Users\<username>\.ssh\authorized_keys" /inheritance:r /grant "Adminstrators:F" /grant "SYSTEM:F"
    
  • Cambie el <nombre de usuario> a su nombre de usuario.
    icacls.exe "C:\Users\akinl\.ssh\authorized_keys" /inheritance:r /grant "Adminstrators:F" /grant "SYSTEM:F"
    

    La salida del comando:

    processed file: C:\Users\akinl\.ssh\authorized_keys
    Successfully processed 1 file; Failed processing 0 files
    
  • Sin acceso

  • Para configurar completamente el servidor SFTP, necesitamos editar el archivo sshd_config para configurar la autenticación basada en clave pública; el archivo sshd_config está disponible en el directorio ProgramData. Copie la ruta completa a continuación al Explorador de Windows y abra el archivo sshd_config
    C:\ProgramData\ssh
    

    El archivo sshd_config es el último archivo dentro del directorio.

    sshd_config

  • Modifique descomentando o cambiando las líneas que contienen la información de configuración en su archivo sshd_config. Además, abra el archivo sshd_config como Administrador.
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no
    PermitEmptyPasswords no
    Subsystem sftp internal-sftp
    
    Match User <username>
    	X11Forwarding no
    	AllowTcpForwarding no
    	PermitTTY no
    	ForceCommand internal-sftp
    	PasswordAuthentication no
    

    Además, asegúrese de cambiar el <nombre de usuario> a su nombre de usuario. Además, puede comentar la siguiente información de configuración dentro del archivo.

    Match Group administrators
    	   AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    
  • Los cambios en su archivo ssh_config deberían verse como la imagen a continuación:

    ssh_config_editar

  • Ahora, abramos WinSCP usando el método de inicio de sesión de nombre de usuario y contraseña anterior.

    Autenticación no admitida

    Ya no es compatible porque hemos cambiado el archivo de configuración para admitir solo la autenticación de clave pública. Para iniciar sesión ahora, necesitamos usar nuestra clave pública.

  • En lugar de utilizar la Contraseña, haga clic en el botón Avanzado.

    Botón Avanzado

  • Vaya a la pestaña Autenticación en SSH.

    Autenticación

  • En el área Parámetros de autenticación, busque el archivo de clave privada y vaya al directorio .ssh (C:\Users\akinl\.ssh), y cambie las opciones de archivo a Todos los archivos

    Parámetros de autenticación

  • Seleccione el archivo id_rsa, que debería mostrar el siguiente cuadro de diálogo. Seleccione OK.

    De acuerdo

    Después, debería mostrarse el siguiente cuadro de diálogo.

    Clave privada convertida

  • Luego, haga clic en Aceptar.

    Guardar ajustes

  • Ahora, haga clic en Iniciar sesión.

    Acceso

    Y ahora, tiene acceso al servidor SFTP mediante autenticación de clave pública.

    Acceso a través de SSH

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Artículo relacionado - Python Server