miércoles, 19 de octubre de 2022

Conexión SSH en macOS

 

Hola que tal, en esta ocasión se muestra una conexión SSH desde macOS, pero por configuración el servicio que tiene por defecto en las sesiones de ssh como cliente, no soporta métodos de encriptación que tengan una seguridad baja.
El siguiente ejemplo muestra una conexión desde un cliente terminal de macbook a un Access Point Cisco con el comando:

 

ssh -l <usuario> <dirección IP>

 

ó

 

ssh <usuario>@<direccion IP>

 

En el caso del access point la dirección IP que tiene es 192.168.0.253 y esta creado el usuario “pavel” para este escenario. Por lo que el comando que usaremos será el siguiente:

 

ssh -l pavel 192.168.0.253

 

Pero aparece el siguiente error y no permite la conexión. 

 

 

 

Analizando el output se puede observar que la negociación no está habilitada entre la terminal de macbook y el Access point, debido a que el intercambio de llaves no coincide, entonces existen dos opciones, actualizar la configuración de SSH en el access point, para soportar las llaves que utiliza la macbook, que hasta este momento no se sabe cuáles son. O se puede utilizar las llavez que aparecen en el error. por ejemplo:

Según el mensaje que arroja al intentar la conexión, el access point es compatible con:

            Diffie-hellman-group-exchange-sha1

            Diffie-hellman-group14-sha1

            Diffie-hellman-group1-sha1

 

Buscando un poco en la red, me encontré con esta línea de comando que se puede utilizar para definir en la terminal cual llave queremos utilizar para establecer la sesión de SSH.

 

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 pavel@192.168.0.253

 

Después de poner este comando en la terminal aparece otro mensaje diferente al anterior

 

 

Ahora volviendo a analizar el output, indica que tampoco coincide el método de cifrado, y se aprecia que el access point soporta los métodos:

            aes128-cdc

            3des-cdc

            aes192-cdc

            aes256-cdc

 

 

Por lo que ahora se debe definir que metodo de cifrado se quiere utilizar para establecer la sesión con el dispositivo remoto.

Si se teclea en la terminal “ssh –help” , brinda la ayuda rápida de las opciones que soporta el comando ssh en esta terminal.

 

 

 

La opción de “-c” es para especificar el cifrado que vamos a utilizar.

Entonces se procede a completar el comando anterior con la opción “-c aes128-cbc” que es uno de los cifrados que utiliza el access point.

 

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc pavel@192.168.0.253  

 

Después de eso la terminal se conecta exitosamente al access point.

 

 

 

Entonces, de esta manera desde la misma terminal y sin modificar la configuración del archivo “ssh_config” nos vamos a poder conectar a los diferentes dispositivos por SSH que no soporten el mismo intercambio de llaves declarado por default en macbook y tampoco el mismo cifrado.

 

Yo creo que eso sería todo, bye!