Se produce el error «No se ha encontrado ningún tipo de clave de host coincidente» o «No se ha encontrado ningún método de intercambio de claves coincidentes» al conectarme a mi instancia de Linux de Amazon Elastic Compute Cloud (Amazon EC2) mediante SSH. Breve descripción
Breve descripción
Al conectarse a una instancia de Linux de EC2 mediante SSH, es posible que se produzca uno de los siguientes errores:
- No se ha encontrado ningún tipo de clave de host coincidente: Este error se produce cuando SSH no puede negociar un algoritmo de cifrado o una clave de host comunes con el servidor al que se está conectando.
- No se ha encontrado ningún método de intercambio de claves coincidente: Este error indica un problema con el algoritmo de intercambio de claves negociado entre el servidor y el cliente de SSH durante el protocolo de enlace de SSH. Se produce cuando el servidor y el cliente de SSH tienen unos algoritmos de intercambio de claves diferentes o incompatibles.
Solución
Actualizar el cliente openssh
Es posible que las versiones anteriores del cliente openssh no sean compatibles con el algoritmo de intercambio de claves que haya negociado el servidor. Ejecute uno de los siguientes comandos para actualizar el cliente a la versión más reciente:
Ubuntu y Debian
sudo apt upgrade openssh-client
Amazon Linux, RHEL y Fedora
sudo yum upgrade openssh-clients
Solucionar el error «No se ha encontrado ningún tipo de clave de host coincidente»
Ejemplo del error
Unable to negotiate with X.X.X.X port 22. no matching host key type found. Their offer: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519.
Para resolver este error, asegúrese de que el servidor y el cliente tengan al menos un algoritmo de clave de host coincidente. Ejecute el siguiente comando en el servidor y el cliente para comprobar el algoritmo de clave de host:
sudo ssh -Q key
Para añadir otros algoritmos al cliente, anexe la siguiente línea al archivo ~/.ssh/config o /etc/ssh/ssh_config:
vi ~/.ssh/config
HostkeyAlgorithms +ssh-ed25519
Solucionar el error «No se ha encontrado ningún método de intercambio de claves coincidente»
Ejemplo del error
Unable to negotiate with X.X.X.X port 22: no matching key exchange method found. Their offer: curve25519-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha25
Para resolver este error, asegúrese de que el servidor y el cliente tengan al menos un algoritmo de intercambio de claves coincidente. Ejecute el siguiente comando en el servidor y el cliente para comprobar el algoritmo de intercambio de claves:
sudo ssh -Q kex
Para añadir otro algoritmo de intercambio de claves al cliente, anexe la siguiente línea al archivo ~/.ssh/config o /etc/ssh/ssh_config:
vi ~/.ssh/config
KexAlgorithms +diffie-hellman-group16-sha512
Información relacionada
OpenSSH Legacy Options, disponible en openssh.com