Cuando estamos instalando un servidor en una distribución de linux diferente a la que estamos acostumbrados a utilizar, se pueden dar infinidad de problemas que desconocemos, simplemente por que no hemos tenido que lidiar con ellos. Por eso vamos a ver como solucionar el error Server does not support diffie-hellman-group1-sha1 for keyexchange de una forma sencilla.Por lo general nos aparecerá cuando intentemos conectar a mysql a través de un tunel SSH (o a cualquier otra aplicación), y simplemente significa que nos hace falta que el equipo de destino tenga las instrucciones para el intercambio de claves Diffie-Helman (me suena a mahonesa), que se encargan de reducir las posibilidades de que un tercero intercepte la contraseña utilizada al conectarnos.
Para solucionarlo vamos simplemente a editar el archivo /etc/ssh/sshd_conf con nuestro editor favorito, en este caso sería así:
nano /etc/ssh/sshd_conf o si no somos root sudo nano /etc/ssh/sshd_conf
Al final del archivo insertaremos estas dos líneas tal y como las dejo aquí:
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
Y luego reiniciaremos el servicio ssh
sudo service ssh restart o sudo service sshd restart
dependerá un poco de la distribución que estamos usando el tener que poner o no sudo o ssh y sshd. Por último regeneraremos las claves que no eran necesarias antes de realizar estos cambios con el comando
ssh-keygen -A
Y a partir de este momento seremos capaces de conectar correctamente al servidor que tratábamos de acceder antes. En este caso ha sido sobre un lubuntu, pero nos puede servir para cualquier versión de linux.
Si tienes alguna otra forma de solucionarlo o no te ha resuelto el problema deja un comentario.