Instalación, prueba y desinstalación de un servidor SFTP basado en OpenSSH en Windows | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Instalación, prueba y desinstalación de un servidor SFTP basado en OpenSSH en Windows

Esta guía se aplica a Windows Server 2019, 2022 y 2025, que incluyen OpenSSH Server como una característica opcional integrada. No se requiere ninguna descarga de terceros.

Guía paso a paso

Instalación de la característica OpenSSH Server

1) Inicie PowerShell como administrador: Inicio, escriba "PowerShell" → haga clic con el botón derecho en "PowerShell" → Ejecutar como administrador.

2) Compruebe si la característica OpenSSH Server ya está instalada:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' | Select-Object Name, State

Comprobación de si la característica OpenSSH Server está instalada
Nota: Aquí se enumeran tanto OpenSSH.Client como OpenSSH.Server. Asegúrese de comprobar específicamente el estado de OpenSSH.Server, el componente de cliente puede estar ya instalado y no es lo que cubre esta guía.

Si OpenSSH.Server muestra el estado State : NotPresent, instálelo:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Instalación de la característica OpenSSH Server en PowerShell
Nota: Windows instala la característica integrada OpenSSH Server en C:\Windows\System32\OpenSSH\. No instale OpenSSH manualmente directamente en C:\Windows, esto infringe las convenciones de directorios de Windows y puede causar problemas de permisos.

3) Inicie el servicio sshd y configúrelo para que se inicie automáticamente:

Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'

4) Compruebe que el servicio se está ejecutando:

Get-Service sshd

Estado del servicio sshd de OpenSSH mostrando Running

El campo Status debería mostrar Running. Para confirmar también que el tipo de inicio está establecido en Automatic:

Get-CimInstance Win32_Service -Filter "Name='sshd'" | Select-Object StartMode

StartMode del servicio sshd mostrando Auto

5) Compruebe la ubicación del binario de OpenSSH instalado y la información de versión:

Get-Command sshd | Select-Object Source (Get-Command sshd).FileVersionInfo

Ruta e información de versión del binario sshd

El campo Source confirma que la ruta de instalación coincide con C:\Windows\System32\OpenSSH\sshd.exe; FileVersionInfo muestra la versión de OpenSSH (por ejemplo, OpenSSH_8.1p1, FileVersion 8.1.0.1 en Windows Server 2022).

Apertura del puerto del cortafuegos

De forma predeterminada, al instalar la característica OpenSSH Server normalmente se crea automáticamente una regla de cortafuegos de entrada llamada OpenSSH-Server-In-TCP. Confirme que existe y está habilitada:

Get-NetFirewallRule -Name *OpenSSH-Server*

Regla de cortafuegos de entrada de OpenSSH habilitada

Si la regla no existe, créela manualmente (observe el nombre de regla diferente, esta regla creada manualmente es independiente de la regla OpenSSH-Server-In-TCP generada automáticamente):

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Compruebe que el puerto está realmente abierto y a la escucha:

Test-NetConnection -ComputerName localhost -Port 22

Test-NetConnection al puerto 22 con éxito

Un resultado TcpTestSucceeded : True confirma que el servicio está a la escucha localmente. Esto no confirma que el cortafuegos esté dejando pasar el tráfico desde el exterior, para verificarlo completamente, ejecute el mismo comando desde otra máquina de la red, sustituyendo localhost por la dirección IP del servidor.

Configuración de sshd_config para SFTP

El archivo de configuración se encuentra en:

C:\ProgramData\ssh\sshd_config

Ábralo en un editor de texto con derechos de administrador (por ejemplo, Notepad ejecutado como administrador) y confirme que los siguientes ajustes están presentes (o configurados según sea necesario):

Port 22 PasswordAuthentication yes Subsystem sftp sftp-server.exe

Línea Subsystem sftp en sshd_config
Nota de seguridad: PasswordAuthentication yes se muestra aquí para mantener esta guía sencilla, pero para un servidor de producción expuesto a Internet, la autenticación basada en claves con PasswordAuthentication no es la opción más segura. Consulte el ajuste opcional AuthorizedKeysFile más abajo si tiene previsto utilizar la autenticación basada en claves.
Importante: La línea Subsystem sftp define qué binario gestiona las sesiones SFTP. Sin esta línea presente y sin comentar, las conexiones SSH funcionarán, pero la transferencia de archivos SFTP fallará.

De forma predeterminada, esta línea ya está presente y sin comentar en el archivo de configuración de la característica integrada. Si falta o está comentada con #, añádala o quítele el comentario y, a continuación, guarde el archivo.

Nota: Las versiones más recientes de OpenSSH también admiten Subsystem sftp internal-sftp, un gestor integrado que no llama a un binario externo:

Subsystem sftp internal-sftp

Tanto sftp-server.exe como internal-sftp funcionan; esta guía utiliza sftp-server.exe, ya que es el valor que viene de forma predeterminada.

Ajustes opcionales que también puede querer incluir en sshd_config:

# Valor predeterminado, ya establecido; se muestra aqui como referencia si la autenticacion basada en claves no funciona # AuthorizedKeysFile .ssh/authorized_keys # Restringir el acceso a usuarios especificos (opcional) # AllowUsers username1 username2 # Registro SyslogFacility LOCAL0 LogLevel INFO

Nota: Para las cuentas que son miembros del grupo local Administradores, la versión de OpenSSH para Windows utiliza un archivo diferente: C:\ProgramData\ssh\administrators_authorized_keys, no .ssh\authorized_keys en el perfil del usuario. Si la autenticación basada en claves para una cuenta de administrador no funciona como se espera, compruebe este archivo en su lugar.

Después de cualquier cambio en sshd_config, reinicie el servicio para aplicarlo:

Restart-Service sshd

Comprobación de la conexión SFTP mediante WinSCP

Instale y ejecute el cliente gratuito WinSCP. En la ventana de configuración de la conexión, seleccione el protocolo de transferencia de archivos SFTP, introduzca el nombre de host o la dirección IP del servidor en el campo Host name, deje el campo Port number en 22 (a menos que haya configurado un puerto diferente) e introduzca las credenciales de la cuenta de Windows con la que se está conectando.

Ventana de inicio de sesión de WinSCP con el protocolo SFTP seleccionado

Si todo está configurado correctamente, el cliente se conecta al servidor SFTP y muestra el contenido del directorio personal del usuario (el directorio de perfil predeterminado). De forma predeterminada, el usuario accede a C:\Users\<username>. Los archivos pueden entonces transferirse de forma segura entre el servidor y el cliente a través del protocolo SFTP.

WinSCP conectado al servidor SFTP mostrando el directorio personal

Desinstalación de la característica OpenSSH Server

1) Inicie PowerShell como administrador.

2) Detenga el servicio sshd antes de eliminar la característica, eliminarla mientras el servicio sigue en ejecución o en uso activo puede fallar o quedarse bloqueado:

Stop-Service sshd

3) Elimine la característica:

Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

4) (Opcional) Elimine la regla de cortafuegos. Esto cubre tanto la regla creada automáticamente como la creada manualmente, en caso de que alguna exista:

Remove-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue Remove-NetFirewallRule -DisplayName 'OpenSSH Server (sshd)' -ErrorAction SilentlyContinue

5) (Opcional) Eliminación de la configuración: puede eliminar solo el archivo de configuración o realizar una limpieza completa incluyendo las claves de host.

Para eliminar solo sshd_config sin tocar las claves de host:

Remove-Item -Path 'C:\ProgramData\ssh\sshd_config' -Force

Para una limpieza completa incluyendo las claves de host, elimine en su lugar toda la carpeta de configuración:

Remove-Item -Path 'C:\ProgramData\ssh' -Recurse -Force

Advertencia: Al eliminar toda la carpeta también se eliminan de forma permanente las claves de host del servidor. Los clientes que se conecten después de una reinstalación tratarán el servidor como un host SSH nuevo y no reconocido. Haga esto solo si no tiene previsto reinstalar OpenSSH Server con la misma configuración más adelante.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA