Vamos a ver la solución a varios errores que pueden surgir al conectarnos por ssh, a equipos Linux que tienen versiones un tanto desactualizadas y por lo tanto al deprecarse debemos buscar alternativas para lograr nuestro objetivo. Los posibles errores son:
Unable to negotiate with DIRECCION_IP port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
Unable to negotiate with DIRECCION_IP port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
Solución 1: Por comando
Para el primer mensaje. Lanzamos el comando ssh con los siguientes parámetros:
ssh -oHostKeyAlgorithms=+ssh-dss -oPubkeyAcceptedAlgorithms=+ssh-rsa [email protected]
o para el segundo caso
ssh -oHostKeyAlgorithms=+ssh-dss -oKexAlgorithms=+diffie-hellman-group1-sha1 [email protected]
Solución 2 (recomendada): generando un archivo de configuración
Vamos a crear en nuestro ~/.ssh/config y dentro le ponemos los parámetros.
Para el ejemplo de los comandos con agregar lo siguiente es suficiente.
Podemos agregarles algunos más.
Host 192.168.200.41 HostName server-test1 User usuario1 # espesificamos usuario Port 2020 # dar un puerto IdentityFile ~/.ssh/mi_llave_rsa # hasta decirle que llave usar HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa HostKeyAlgorithms +ssh-dss KexAlgorithms +diffie-hellman-group1-sha1
Solución 3: a error Unable to negotiate with … pero utilizando el comando sshfs – read: Connection reset by peer
El comando sshfs es para montar FileSystems, comando que veremos más adelante, pero también generar el archivo config o lanzar el comando con los parámetros que vimos sirven para solucionar el problema.