Instalar OpenSSH Server en Windows Server 2022

Publicado por P. Ruiz en

logo OpenSSHHoy en día, existen muchas formas de administrar los sistemas operativos de forma remota. De hecho, cuando hablamos de Windows Server, ya hemos mencionado en otros artículos de SomeBooks.es herramientas como Windows Admin Center (WAC) o Remote Server Administration Tools (RSAT).

Si te interesa, puedes consultar nuestros artículos sobre Windows Admin Center o sobre Remote Server Administration Tools para obtener más información.

No obstante, existe una herramienta clásica, sobre todo cuando pretendemos acceder a la línea de comandos, que resulta muy básica, pero muy interesante. Además, es común a diferentes sistemas operativos. De hecho, ya hemos dedicado algunos artículos al modo de usarla en GNU/Linux. Estoy hablando de OpenSSH.

Como antes, puedes ampliar información consultando nuestros artículos sobre SSH en GNU/Linux, que a partir de hoy, también pueden resultarte útiles en Windows.

Hoy aprenderemos a instalar OpenSSH en un ordenador con Windows Server 2022 sin Experiencia de Escritorio. Sin embargo, lo que expliquemos será completamente válido en un sistema con interfaz gráfica. Solo necesitarás abrir una ventana de terminal. Por ejemplo usando combinación de teclas Windows + R y escribiendo el siguiente comando en la ventana que aparece:

powershell

Por el contrario, en Windows Server 2022 sin Experiencia de Escritorio, es muy probable que, al iniciar sesión con la cuenta Administrador, se haya iniciado de forma automática la herramienta sconfig. Si este es tu caso, lo primero será salir de la herramienta. Lo conseguiremos usando la opción 15 del menú.

Elegimos la opción y pulsamos la tecla Intro.

Instalar-OpenSSH-server-en-Windows-Server-2022-001

A partir de aquí, comenzaremos a aplicar las diferentes ordenes…

Comprobar la disponibilidad de OpenSSH

Antes de comenzar a instalar software, lo primero será averiguar si ya tenemos disponible OpenSSH en el servidor, algo que podemos averiguar fácilmente con el cmdlet Get-WindowsCapability.

Usaremos el argumento -Online para indicar que nos referimos al sistema operativo local y el argumento -Name para filtrar todas las características que comiencen por el texto Open. En definitiva, la sintaxis será esta:

Get-WindowsCapability -Online -Name Open*

Ejecutamos el comando.

Instalar-OpenSSH-server-en-Windows-Server-2022-002

Al hacerlo, comprobamos que, en este momento, tenemos instalado el cliente OpenSSH, pero no el servidor. Es decir, desde éste equipo podremos conectarnos a un ordenador diferente, que permita conexiones SSH.

Sin embargo, este ordenador no admitirá conexiones, porque no contiene el software que lo convierte en servidor. Por lo tanto, deberemos seguir con la tarea que nos ha traído hasta aquí.

Instalar OpenSSH

Una vez realizada la comprobación anterior, el siguiente paso será realizar la instalación. Y para lograrlo, recurriremos al cmdlet Add-WindowsCapability.

Como antes, recurriremos a los argumentos -Online y -Name, pero ahora deberemos escribir el nombre completo de la característica. En cualqueir caso, no hay que preocuparse, porque lo tenemos en la salida del comando anterior:

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

La mayoría de los teclados, en español, permiten obtener el carácter virgulilla (~) con la combinación de teclas Alt Gr + 4.

Al ejecutarlo, aparecerá un un cuadro de color azul en la parte superior de la ventana, para informarnos del avance de la instalación.

Instalar-OpenSSH-server-en-Windows-Server-2022-003

Un momento más tarde, la instalación habrá concluido.

Instalar-OpenSSH-server-en-Windows-Server-2022-004

Al final del proceso, el cmdlet Add-WindowsCapability nos recuerda dónde se ha producido la instalación (Online: True) y nos informa de que no es necesario reiniciar (RestartNeeded: False).

Si ahora repetimos el cmdlet Get-WindowsCapability, podemos comprobar que la característica ya está disponible.

El estado de OpenSSH.Server también aparece como Installed.

Instalar-OpenSSH-server-en-Windows-Server-2022-005

Comprobar el estado de los servicios e iniciarlos si es necesario

Una vez instalada la característica, deberemos asegurarnos de que los servicios que tiene asociados, están activos. En particular, nos referimos a sshd, que será el que reciba las solicitudes de los clientes, y a ssh-agent, que será el encargado de administrar las claves privadas utilizadas para autenticarse a través de SSH.

Por lo tanto, usaremos el cmdlet Get-Service, enviándole el nombre de ambos servicios como argumento:

Get-Service sshd
Get-Service ssh-agent

… En ambos casos, comprobamos que están detenidos.

Instalar-OpenSSH-server-en-Windows-Server-2022-006

Como necesitamos que estén activos, el siguiente paso será iniciarlos. Lo conseguiremos con el cmdlet Set-Service, con el argumento -Name para indicar el nombre del servicio, y el argumento -StartupType, que indica la forma en la que se iniciará el servicio. En este caso, usaremos el valor Automatic (automático) para que se inicie de forma automática cada vez que se arranque el sistema.

En definitiva, las órdenes quedarán así::

Set-Service -Name sshd -StartupType Automatic
Set-Service -Name ssh-agent -StartupType Automatic

Si no hay ningún error, tampoco obtendremos ningún tipo de salida.

Instalar-OpenSSH-server-en-Windows-Server-2022-007

Las órdenes anteriores establecen el comportamiento de los servicios cuando se inicie el sistema. Sin embargo, no cambiarán sus estados actuales.

Si queremos que los servicios estén activos a partir de este momento, podemos reiniciar el servidor o, sencillamente, usar el cmdlet Start-Service, que conseguirá el mismo efecto.

De nuevo, tendremos que aplicarlo a cada servicio:

Start-Service sshd
Start-Service ssh-agent

Como antes, si no se producen errores, no se emite ningún tipo de mensaje.

Instalar-OpenSSH-server-en-Windows-Server-2022-008

A partir de este momento, el servicio SSH está listo para recibir solicitudes de conexión. Sin embargo, para estar seguros, terminaremos este apartado como lo comenzamos, es decir, usando el cmdlet Get-Service, para comprobar el estado de los servicios.

Bueno, para no repetirnos, variaremos un poco la sintaxis:

Get-Service ssh*

… Y vemos que, efectivamente, ambos servicios están activos.

Instalar-OpenSSH-server-en-Windows-Server-2022-009

Iniciar la conexión desde un ordenador diferente

Para comprobar que todo funciona, basta con desplazarnos a cualquier ordenador de nuestra red, siempre que disponga de un cliente SSH (aunque eso es lo más habitual).

De hecho, nuestra prueba la haremos desde un ordenador con Windows 11. Basta con abrir una nueva ventana de PowerShell y escribir una orden como esta:

ssh administrador@192.168.1.6

Como es lógico, puedes cambiar el nombre de la cuenta de usuario, en este caso administrador, por cualquier otra que exista en el servidor.

Escribimos la orden y pulsamos la tecla Intro.

Instalar-OpenSSH-server-en-Windows-Server-2022-010

Si es la primera vez que iniciamos una conexión SSH con este servidor (lógico, acabamos de configurarla), Windows 11 nos avisará de que es un servidor desconocido y nos pedirá que la validemos.

Para lograrlo, deberemos escribir el texto yes y pulsar la tecla Intro.

Instalar-OpenSSH-server-en-Windows-Server-2022-011

Como en la orden de arriba hemos indicado que iniciaremos sesión con la cuenta Administrador, el siguiente paso será escribir su contraseña.

La escribimos y volvemos a pulsar la tecla Intro.

Instalar-OpenSSH-server-en-Windows-Server-2022-012

Poco después, estaremos listos para comenzar a escribir órdenes en el servidor de forma remota.

Observa cómo ha cambiado el prompt del sistema, para que seas consciente de que las órdenes que escribas no se ejecutarán en el ordenador local.

Instalar-OpenSSH-server-en-Windows-Server-2022-013

Y con esto completamos la tarea que nos habíamos propuesto. Espero que te resulta útil.