OpenSSH en windows


OpenSSH es una herramienta popular para la seguridad y la comunicación en red, en este post, hablaremos sobre cómo OpenSSH puede ayudar a los usuarios de Windows

oscar Escrito por oscar 17 July 2023 657 0

OpenSSH es una herramienta popular para la seguridad y la comunicación en red. OpenSSH, que originalmente se creó para sistemas operativos basados en Unix, ahora está disponible también para Windows. Esto permite a los usuarios de Windows establecer conexiones seguras a través del protocolo SSH (Secure Shell).

En este post, hablaremos sobre cómo OpenSSH puede ayudar a los usuarios de Windows al permitirles conectarse y administrar sistemas remotos de forma segura a través de una interfaz de línea de comandos. Discutiremos los conceptos fundamentales de SSH, incluida la configuración de OpenSSH en Windows y algunos casos de uso reales que demuestran su utilidad.

Precondiciones

Instalar OpenSSH en Windows

Para instalar los componentes de OpenSSH seguimos los siguientes pasos:

1. Ingresamos a configuración, seleccionamos aplicaciones y en la sección aplicaciones y caracteristicas damos click a caracteristicas opcionales.

Aplicaciones y caracteristicas

 

2. Escanee la lista para ver si OpenSSH ya está instalado. Si no es así, en la parte superior de la página, seleccione agregar una caracteristica y, a continuación:

  • Busque OpenSSH Client y, a continuación, seleccione Instalar
  • Busque OpenSSH Server y, a continuación, seleccione Instalar

3. Una vez completada la configuración, vuelva a Aplicaciones y características y confirme que OpenSSH aparece en la lista.

Lista de openSSH

 

4. Abra la aplicacion de servicios, para hacerlo tiene dos opciones principales:

  • Seleccione inicio y escriba en el buscador servicios, y abra la aplicación.
  • Con la combinacion de la tecla Windows + R, en la ventana de ejecutar escriba services.msc y luego de enter.

5. Buscaremos el servio OpenSSH SSH server como se muestra en la siguiente imagen, damos doble click:

Servicio OpenSSh Server

 

6. Se abrirá la ventana de propiedades de OpenSSH server, la configuración que debemos hacer en esta ventana es la siguiente:

  • En la pestaña general, buscamos el tipo de inicio y damos en Automático; liego damos en iniciar.
Propiedades de OpenSSH server

 

Conectarse al servidor OpenSSH

Una ves instalado OpenSSH server en Windows, procederemos a realizar una prueba, para ser mas prácticos nos conectaremos a la misma maquina, aun que se puede con dos maquinas diferentes.

El comando a usar para dicha conexion es la siguiente:

ssh domain\username@servername

Donde:

  • Domain: dominio donde esta el servidor en la red local
  • Username: nombre de usuario de la maquina, normalmente con el que iniciamos sesión
  • Servename: nombre del servidor o la dirección IP

Veamos el ejemplo con datos reales

ssh codigoelectronica@192.168.10.11

Esto devolverá la siguiente salida cuando se conecta por primera vez:

The authenticity of host '192.168.10.11 (192.168.10.11)' can't be established.
ED25519 key fingerprint is SHA256:8SmCbc5YHuqOepbdc8SXpULrYORJMsB4zC5faYTrKjs.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Luego nos pedirá que coloquemos la contraseña del usuario.

Warning: Permanently added '192.168.10.11' (ED25519) to the list of known hosts.
oscardevops@192.168.10.11's password:

Una ves autenticados correctamente, veremos que muestra la consola de comandos de la maquina que iniciamos por SSH, que en este caso de prueba es la misma maquina.

Microsoft Windows [Versión 10.0.19045.3208]
(c) Microsoft Corporation. Todos los derechos reservados.

codigoelectronica@DESKTOP-1801MLQ C:\Users\codigoelectronica>

Configuración del servidor OpenSSH para Windows

Nota: en la documentación oficial Configuración del servidor OpenSSH para Windows | Microsoft Learn puede encontrar a detalle como hacer la configuración de openSSH y la ubicación de los archivos principales.

En Windows, el cliente OpenSSH (ssh) lee los datos de configuración de un archivo de configuración en el Siguiente orden:

  • Al iniciar ssh.exe con el parámetro -F, especificando una ruta a un archivo de configuración y un nombre de entrada de ese archivo.
  • Un archivo de configuración de usuario en %userprofile%\.ssh\config.
  • El archivo de configuración de todo el sistema en %programdata%\ssh\ssh_config.

En Windows, sshd lee los datos de configuración de %programdata%\ssh\sshd_config de forma predeterminada.

Procedemos a realizar la siguiente configuración Configurar OpenSSH server para producción | CodigoElectronica

PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys
PasswordAuthentication no

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Procedemos a reiniciar el servicio de OpenSSH para que cargue los nuevos cambios del archivo de configuración.

Reiniciar openssh server

Ingresamos de nuevo a servicios, buscamos OpenSSH server y dando boton derecho en el menú damos click en reiniciar.

Crear las llaves publicas y privadas

ssh-keygen

Nota: tenemos la documentación oficial Key-based authentication in OpenSSH for Windows | Microsoft Learn donde explica la creación de las llaves.

Procedemos a crear las llaves con el comando

ssh-keygen

Donde nos dará la siguiente respuesta

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/oscardevops/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/oscardevops/.ssh/id_rsa
Your public key has been saved in /c/Users/oscardevops/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:EbJbHepGCJyks59QGpZxDB8ef0CE/Ir1RUStaIrclrg oscardevops@DESKTOP-1801MLQ
The key's randomart image is:
+---[RSA 3072]----+
|  o**==o+..      |
|   B*= =.+..     |
|  * +.+o*..      |
| . *. +*o.       |
| .+* *..S        |
|  =o*...         |
|   oo            |
|  E              |
|                 |
+----[SHA256]-----+

Si listamos los archivos en el directorio .ssh, observamos las llaves:

C:\Users\<USUARIO>\.ssh>dir
23/08/2023  12:36 p. m.    <DIR>          .
23/08/2023  12:36 p. m.    <DIR>          ..
23/08/2023  12:35 p. m.             2.622 id_rsa
23/08/2023  12:35 p. m.               587 id_rsa.pub

authorized_keys

En el servidor sshd, debemos crear el archivo `authorized_keys` con el valor de la clave publica `id_rsa.pub` y darle permisos adecuados para que solo el usuario de la sesion pueda acceder a este archivo:

Creamos el archivo authorized_keys, esto lo puede hacer por comandos o con blog de notas.

mkdir authorized_keys

Importante: el authorized_keys no debe tener ninguna extensión.

Copiamos el contenido de id_rsa.pub a authorized_keys

authorized_keys

Deberá quedar la carpeta .ssh de la siguiente forma:

C:\Users\oscardevops\.ssh>dir
23/08/2023  12:36 p. m.    <DIR>          .
23/08/2023  12:36 p. m.    <DIR>          ..
23/08/2023  12:36 p. m.               588 authorized_keys
23/08/2023  12:35 p. m.             2.622 id_rsa
23/08/2023  12:35 p. m.               587 id_rsa.pub

Prueba con llave publica y privada

Volvemos a realizar las pruebas de conexión, usemos el mismo comando:

ssh oscardevops@192.168.10.3

Para este inicio por ssh, no va a solicitar la contraseña e ingresara directamente, esto sucede por que esta usando la key id_rsa que esta por defecto en el directorio c:/user/<USUARIO>/.ssh.

Si movemos de ubicación la key id_rsa o iniciamos sesión desde otra maquina, debemos parsarle como parametro la key al comando ssh, esto lo hacemos de la siguiente forma:

ssh oscardevops@192.168.10.3 -i c:/Users/USUARIO/.ssh/id_rsa

Donde (-i)  es indentity_file

Palabras clave: OpenSSH en windows, instalar open sse en windows, configurar openssh en windows

Comentario

Debe aceptar antes de enviar