Cómo configurar OpenSSH en Windows
Configurar SSH en Windows solía ser un fastidio: había que lidiar con clientes de terceros como PuTTY o con componentes adicionales del servidor. Pero, desde la actualización de abril de 2018 (versión 1803), Windows empezó a incorporar OpenSSH como una función opcional. Es bastante útil, pero no siempre es fácil conseguir que funcione correctamente, sobre todo cuando se busca fiabilidad para el uso diario. Esta guía explica las formas más comunes de instalar y ajustar OpenSSH, con algunos consejos para garantizar que funcione correctamente sin ser un auténtico dolor de cabeza.
Al final, dominarás la instalación de OpenSSH mediante la interfaz gráfica de usuario o PowerShell, la gestión de errores de configuración y la resolución de molestos errores de conexión. Es bastante satisfactorio cuando el servidor SSH finalmente funciona correctamente en tu equipo Windows: evita problemas de terceros y facilita el acceso remoto. Ten en cuenta que a veces las cosas no salen a la perfección, especialmente con las reglas del firewall o el inicio de servicios, así que estate atento.
Cómo instalar OpenSSH en Windows
Si tu equipo es compatible (Windows 10 compilación 1809 o posterior, o Windows Server 2019 o posterior), instalar OpenSSH no es un gran problema. Pero ten cuidado, no siempre es sencillo; los pasos meticulosos o los errores rápidos pueden causar frustración. Aquí tienes algunos métodos fiables para ponerlo en marcha.
Método 1: Uso de la GUI (funciones opcionales)
Esta es probablemente la ruta más sencilla si prefieres hacer clic en lugar de escribir comandos. Es sencilla, pero a veces Windows no muestra todo, así que si falla, usa el método de PowerShell.
- Presione Win + Ipara abrir Configuración, luego vaya a Aplicaciones > Funciones opcionales.
- Haga clic en Ver características junto a “Agregar una característica opcional”.
- Desplácese hacia abajo y seleccione Cliente OpenSSH y Servidor OpenSSH. Haga clic en Siguiente y luego en Instalar.
- Una vez finalizado, ejecútalo
services.msc(presiona Win + R, escríbelo y pulsa Intro).Busca el servidor SSH OpenSSH y el agente de autenticación OpenSSH. - Haga doble clic en cada uno, configure su tipo de inicio en Automático si lo desea y luego haga clic en Iniciar.
- Regrese, abra el Firewall de Windows Defender con seguridad avanzada ( Win + Rluego escriba
wf.msc) - En las reglas de entrada, busque o cree una regla para el servidor SSH OpenSSH (sshd) y asegúrese de que esté habilitada (porque, por supuesto, Windows tiene que hacerlo más difícil de lo necesario).
- Básicamente, la configuración está lista. Consulta la sección “Comenzar con OpenSSH” para saber cómo conectarte.
Método 2: PowerShell (recomendado para mayor control)
Si te sientes cómodo con la línea de comandos y buscas más control (y fiabilidad), PowerShell es tu aliado. Además, los scripts suelen ser repetibles en varias máquinas.
- Abra una ventana elevada de PowerShell: presione Win + R, escriba
powershelly luego presione CTRL + Shift + Enter. - Comprueba si OpenSSH está instalado:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'Si ves “Instalado: Falso”, debes instalarlo. - Instalar el cliente y el servidor:
Add-WindowsCapability -Online -Name OpenSSH. Client~~~~0.0.1.0yAdd-WindowsCapability -Online -Name OpenSSH. Server~~~~0.0.1.0. A veces, la instalación tarda un poco, sobre todo en compilaciones antiguas. - Iniciar y configurar los servicios en automático:
Set-Service -Name sshd -StartupType 'Automatic' -Status RunningSet-Service -Name ssh-agent -StartupType 'Automatic' -Status Running - Asegúrese de que el tráfico pase a través del Firewall de Windows:
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Si esto no soluciona el problema, otro truco es comprobar si los servicios están funcionando correctamente. Puedes probar con [nombre del servicio] Get-Service sshd. Y siempre verifica con [nombre del servicio] ssh -Vpara confirmar la versión instalada.
Método 3: Uso de paquetes MSI de GitHub
Si buscas el MSI oficial en la página de PowerShell, descarga la versión más reciente de OpenSSH en GitHub. Luego, instálalo mediante la línea de comandos:
msiexec /i <path-to-openssh.msi>
Supongamos que el MSI está en la carpeta de Descargas; ejecutaría msiexec /i C:\Users\YourName\Downloads\openssh.msi. Para eliminarlo más tarde, cambie /i por /x y el nombre del archivo según corresponda. Tenga en cuenta que, después de la instalación, probablemente necesitará agregar `C:\Windows\System32\OpenSSH` a la ruta de acceso de su sistema para que Windows sepa dónde encontrar los comandos SSH.
Para ello, abra Propiedades del sistema (Ejecutar systempropertiesadvanced), haga clic en Variables de entorno y, en Variables del sistema, edite la ruta. Añádala %systemroot%\System32\OpenSSHsi aún no está. Reinicie su terminal o PowerShell para actualizar la ruta.
Nota rápida: En algunas configuraciones, la edición de variables de entorno podría no funcionar al instante, por lo que reiniciar o cerrar sesión no es mala idea. Además, verifique que Get-Service sshdesté instalado y funcionando correctamente.
Configuración de OpenSSH según sus necesidades
El archivo de configuración principal se encuentra en [nombre del archivo] %programdata%\ssh\sshd_config. Los cambios aquí pueden modificar prácticamente todo: puertos, usuarios permitidos, direcciones IP de escucha, métodos de autenticación, etc. Pero ten cuidado: no todas las configuraciones son compatibles con Windows todavía, así que no te excedas sin consultar la documentación ( guía oficial ).
Algunos ajustes comunes incluyen:
- Cambiar el puerto : si desea usar SSH en un puerto distinto del 22, simplemente descomente y especifique un número diferente. No olvide abrir ese puerto en el Firewall de Windows; de lo contrario, SSH no escuchará allí.
- Configure ListenAddress para restringir SSH a una IP específica, especialmente útil en servidores con múltiples IP.
- Si se necesita autenticación Kerberos/GSSAPI, cambie GSSAPIAuthentication a sí.
- Utilice AllowUsers y AllowGroups para restringir quién puede conectarse (muy útil si no quiere que todos puedan conectarse por SSH).Para cuentas de dominio, siga el formato:
AllowUsers domain\username, y para cuentas locales, solo el nombre de usuario.
Después de editar sshd_config, reinicie siempre el servicio: net stop sshd & net start sshdo mediante PowerShell: Restart-Service sshd. Si omite esta opción, los cambios no surtirán efecto.
Introducción a OpenSSH
Una vez instalado, configurar SSH consiste principalmente en conectarse desde un cliente. Si está en la misma red o dominio de Windows, el comando básico es similar a ssh username@hostname. Para las cuentas de dominio, es posible que deba especificar las credenciales o usar la sintaxis correcta, como ssh domain\username@hostname.
Al iniciar sesión por primera vez, se le pedirá que confíe en la huella digital del host. Confírmela (escriba “sí”) y su equipo la recordará la próxima vez. Deberá proporcionar su contraseña (o configurar la autenticación basada en clave más adelante para mayor seguridad).Puede que al principio le parezca extraño, pero es mucho más rápido y seguro que usar RDP u otras soluciones remotas.
¿Quieres mejorar tu rendimiento? Configura Kerberos, envía claves SSH y bloquea quién puede iniciar sesión. Es más complicado, pero vale la pena por la seguridad.
Manejar fallos comunes de SSH
Si SSH rechaza la conexión o arroja errores de puerto como “Conexión rechazada” o “Tiempo de espera agotado”, esto es lo que debe verificar primero:
- ¿El servicio SSH está funcionando? Ejecútalo
Get-Service sshdy asegúrate de que esté en “Ejecutándose”. - ¿Las reglas del firewall están habilitadas? Confirme con
New-NetFirewallRulecomandos o revise su lista de reglas. - ¿El puerto SSH (predeterminado 22) está abierto y escuchando? Use
netstat -ano | findstr :22Netsh portproxy si es necesario. - La salida detallada de SSL puede ayudar, ejecútelo
ssh -vvv username@hostpara ver dónde se estanca o falla.
A veces, un reinicio rápido o del servicio SSH soluciona problemas de conectividad. Si sigues atascado, revisar los registros %programdata%\ssh\logspuede revelar más pistas. No olvides revisar las reglas del firewall y la configuración de puertos si algo falla después de actualizaciones o cambios en la red.