En corto
| |
Para que sea permanente, un bloque en ~/.ssh/config solo para ese host:
| |
Si la oferta es ssh-dss, la opción es +ssh-dss, pero solo funciona en OpenSSH anterior a 10.0. Desde 10.0 (abril de 2025) DSA no existe en el cliente y +ssh-dss falla con Bad key types; toca usar un cliente viejo (más abajo).
Qué significa el error
| |
El servidor solo sabe firmar su host key con ssh-rsa, que es RSA con SHA-1. OpenSSH 8.8 (septiembre de 2021) dejó de aceptar firmas RSA/SHA-1 por defecto porque SHA-1 está roto: según las notas de la versión, una colisión de prefijo elegido cuesta menos de 50 000 USD. Tu llave y el host key pueden seguir siendo RSA; lo que se rechaza es la firma con SHA-1. Un servidor moderno firma con rsa-sha2-256 o rsa-sha2-512 y no provoca este error.
Quién sigue ofreciendo solo ssh-rsa (o ssh-dss): HP iLO 2/3/4, switches y routers con firmware viejo, NAS sin actualizar, Dropbear antiguo en equipos embebidos, Windows Server 2003 con un SSH server de terceros, appliances fuera de soporte.
Variantes del mismo problema
| Mensaje | Opción |
|---|---|
no matching host key type found. Their offer: ssh-rsa | -o HostKeyAlgorithms=+ssh-rsa |
no matching host key type found. Their offer: ssh-dss | -o HostKeyAlgorithms=+ssh-dss (OpenSSH < 10.0) |
sign_and_send_pubkey: no mutual signature algorithm | -o PubkeyAcceptedAlgorithms=+ssh-rsa |
no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 | -o KexAlgorithms=+diffie-hellman-group14-sha1 (o +diffie-hellman-group1-sha1) |
no matching cipher found. Their offer: aes256-cbc,aes128-cbc,3des-cbc | -c aes256-cbc (equivale a -o Ciphers=+aes256-cbc) |
no mutual signature algorithm es el mismo problema visto desde tu llave: el servidor solo acepta firmas ssh-rsa para autenticar tu llave RSA. En OpenSSH anterior a 8.5 la opción se llamaba PubkeyAcceptedKeyTypes; el nombre viejo sigue aceptándose como alias.
Un iLO 2 o 3 suele necesitar todo a la vez:
| |
Config persistente
| |
Tres detalles:
- El
+agrega al final de la lista por defecto. Sin+reemplazas la lista completa y ese host solo negociará lo que escribiste. - Nunca lo pongas bajo
Host *: reactivarías SHA-1 contra todos tus servidores. - Si el host ya estaba en
known_hostscon otro tipo de llave:ssh-keygen -R legacy-hosty vuelve a conectar.
ssh-dss en OpenSSH 10 o superior
Cronología de DSA en OpenSSH:
| Versión | Fecha | DSA (ssh-dss) |
|---|---|---|
| 7.0 | 2015-08 | Desactivado por defecto; +ssh-dss lo reactiva |
| 9.8 | 2024-07-01 | Desactivado al compilar (--enable-dsa-keys para conservarlo) |
| 10.0 | 2025-04-09 | Eliminado. No hay opción que lo devuelva |
Debian 13 (trixie) trae openssh-client 10.0p1 y macOS Tahoe OpenSSH_10.0p2. En esos clientes:
| |
Comprueba qué sabe tu cliente antes de pelearte con las opciones:
| |
Si el grep -c da 0, la salida práctica es un cliente viejo en un contenedor. Debian 12 (bookworm) trae OpenSSH 9.2p1, que todavía compila DSA:
| |
Con password funciona tal cual; si necesitas una llave, móntala con -v. PuTTY (y plink) también siguen aceptando DSA, con aviso.
La solución de fondo es del lado del servidor: firmware nuevo o un host key ed25519 / RSA con rsa-sha2-256 (OpenSSH server lo soporta desde 7.2).
Ver qué ofrece el servidor
| |
ssh2-enum-algos lista kex, host keys, ciphers y MACs del servidor sin autenticarte.
Trampas
- Es un parche, no un arreglo: firmas SHA-1 y DH de 1024 bits (
group1) son débiles. Úsalo solo en redes de management aisladas y planea actualizar el equipo. - OpenSSH 10.0 también quitó los kex
diffie-hellman-group*de los defaults de sshd; el cliente los conserva. Si es un servidor 10.x el que rechaza a un cliente viejo, el ajuste va ensshd_config, no aquí. - En Fedora/RHEL además existe
crypto-policies. Un bloqueHosten~/.ssh/configse lee antes que la política del sistema y es más seguro que bajar todo aLEGACY. - En Windows, el
ssh.exeintegrado es OpenSSH y acepta las mismas opciones;ssh -Vte dice qué versión traes.
Ver también
- Comandos CLI de iLO y actualizar firmware de iLO por SSH — el cipher
-c aes256-cbcen acción. - SSH a Windows Server 2003 con Bitvise.
- OpenSSH: Legacy Options, notas de 8.8 y 10.0.