ssh No se puede negociar: "no se encontró ninguna cifra coincidente", está rechazando cbc


23

Estoy tratando de ssh a la máquina remota, el intento falla:

$ ssh -vvv admin@192.168.100.14
OpenSSH_7.7p1, OpenSSL 1.0.2o  27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos: 
debug2: languages stoc:
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Por lo que yo entiendo la última cadena del registro, las ofertas de servidor para utilizar uno de los siguientes algoritmos de cifrado 4: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc. Parece que mi cliente ssh no admite ninguno de ellos, por lo que el servidor y el cliente no pueden negociar más.

Pero mi cliente admite todos los algoritmos sugeridos:

$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
... and there are several more.

Y si especifico explícitamente el algoritmo de esta manera:

ssh -vvv -c aes256-cbc admin@192.168.100.14

Puedo iniciar sesión con éxito en el servidor.

Mi ~/.ssh/configno contiene ninguna directiva relacionada con el cifrado (en realidad la eliminé por completo, pero el problema persiste).

Entonces, ¿por qué el cliente y el servidor no pueden decidir qué cifrado usar sin mis instrucciones explícitas? El cliente entiende que el servidor admite aes256-cbc, el cliente entiende que puede usarlo él mismo, ¿por qué no solo usarlo?

Algunas notas adicionales:

ACTUALIZACIÓN: problema resuelto

Como explicó telcoM, el problema es con el servidor: sugiere solo los algoritmos de cifrado obsoletos. Estaba seguro de que tanto el cliente como el servidor no están desactualizados. He iniciado sesión en el servidor (por cierto, es Synology, actualizado a la última versión disponible) y examiné el /etc/ssh/sshd_config. La primera (!) Línea de este archivo fue:

Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Esto es muy extraño (el hecho de que la línea es la primera en el archivo), estoy seguro de que nunca he tocado el archivo antes. Sin embargo, he cambiado la línea a:

Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

reinició el servidor (no descubrí cómo reiniciar sshdsolo el servicio), y ahora el problema desapareció: puedo enviar ssh al servidor como de costumbre.


1
Relacionado: unix.stackexchange.com/questions/333728/… : muestra información sobre cómo deshabilitar.
slm

3
Tuve el mismo problema y descubrí que puedes cambiar esto fácilmente en la interfaz web (ya que ssh no funcionó para mí ...), pero yendo a "Terminal -> configuración avanzada" en el panel de control de DSM y seleccionando el perfil "alto" - por alguna razón, tenía una selección manual habilitada allí ... ¡espero que sea algo que hice y olvidé, y no algo hecho por una actualización anterior de DSM! - las opciones son ahora aes128-ctr, aes128-gcm, aes192 *, aes256 *, dhge-sha256, curve25519-sha256, hmac-sha2-256
Zak

Respuestas:


16

Los -cbcalgoritmos han resultado ser vulnerables a un ataque. Como resultado, las versiones actualizadas de OpenSSH ahora rechazarán esos algoritmos de forma predeterminada: por ahora, todavía están disponibles si los necesita, pero como descubrió, debe habilitarlos explícitamente.

Inicialmente, cuando se descubrió la vulnerabilidad (¡a fines de 2008, hace casi 10 años!), Esos algoritmos solo se colocaron al final de la lista de prioridades en aras de la compatibilidad, pero ahora su desaprobación en SSH ha alcanzado una fase en la que esos algoritmos están deshabilitado por defecto. De acuerdo con esta pregunta en Cryptography.SE , este paso de desaprobación ya estaba ocurriendo en el año 2014.

Considere esto como un recordatorio suave para actualizar su servidor SSH , si es posible. (Si se trata de una implementación basada en firmware, vea si hay firmware actualizado disponible para su hardware).


2

Puede actualizar su configuración ssh desde el archivo ubicado en: / etc / ssh / ssh_config

  1. Lanzar una terminal.
  2. Pegue la línea en la terminal: sudo nano /etc/ssh/ssh_config
  3. Ingresa tu contraseña. Presione Entrar. Se mostrará el archivo de configuración SSH.
  4. Descomenta la línea: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  5. Presione Ctrl + X. Presione Entrar para guardar y salir.

1

crear un archivo dentro de ~ / .ssh / config y pegar debajo del contenido

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.