Cómo podemos habilitar en ssh diferentes intercambios de algoritmo y/o claves "diffie-hellman-group1-sha1 o aes128-cbc" en Red Hat 8, Debian o MacOS?
Algunas veces queremos conectarnos via ssh a un servidor con una clave o algoritmo de intercambio muy vieja o diferentes a la que tenemos en nuestro equipo, en ese momento nos encontramos con un error de conexión como este:
Error:
ssh 1.1.1.1
Unable to negotiate with 1.1.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
o
Unable to negotiate with 1.1.1.1 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc,blowfish-cbc
Solución no permanente:
En el comando ssh le agregamos las opciones -o KexAlgorithms=diffie-hellman-group1-sha1 -o Ciphers=aes256-cbc, o cualquiera de los otros de negociación compatible aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc,blowfish-cbccbc,twofish128-cbc,blowfish-cbc
ssh -o KexAlgorithms=diffie-hellman-group1-sha1 -o Ciphers=aes256-cbc 1.1.1.1
Solución permanente
Inmediatamente confirmado y/o aceptado el tipo algoritmo enviado en las opciones del comando anterior y en caso de dejarlo permanente en el equipo, agregamos las opciones en el archivo de configuración maestro de configuración del cliente ssh /etc/ssh/sshd_config o en el del usuario ~/.ssh/config
KexAlgorithms=+diffie-hellman-group1-sha1
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes256-cbc
echo -e "KexAlgorithms=+diffie-hellman-group1-sha1 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes256-cbc" > ~/.ssh/config
Es importante que tenga el enter entre las dos opciones.
Como pueden observar, después de la configuración anterior, no necesitara agregarle las opciones al cliente ssh
$ ssh 1.1.1.1 usuario@1.1.1.1's password:
Excelente me sirvió mucho.