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 1735 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

Nota: si no encuentra las caracteristicas adicionales en la ruta anterior, intente buscarlas en la siguiente ruta: Configuración > Sistema > Características opcionales

Características opcionales
Características opcionales

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

Conexion desde la maquina

ssh -i key.pem -R 3.238.182.00:2222:localhost:22  ubuntu@3.238.182.00

 

 

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

Comentario

Debe aceptar antes de enviar