ssh Impossibile negoziare: "nessuna cifra corrispondente trovata", sta rifiutando cbc


23

Sto provando a ssh su macchina remota, il tentativo fallisce:

$ 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

Per quanto ho capito l'ultima stringa del registro, il server offerte da utilizzare uno dei seguenti 4 algoritmi di cifratura: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc. Sembra che il mio client SSH non supporti nessuno di essi, quindi il server e il client non sono in grado di negoziare ulteriormente.

Ma il mio client supporta tutti gli algoritmi suggeriti:

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

E se specifico esplicitamente l'algoritmo in questo modo:

ssh -vvv -c aes256-cbc admin@192.168.100.14

Posso accedere con successo al server.

My ~/.ssh/confignon contiene alcuna direttiva relativa alla crittografia (in realtà l'ho rimossa completamente, ma il problema rimane).

Quindi, perché client e server non possono decidere quale cifra utilizzare senza le mie istruzioni esplicite? Il client capisce che il server supporta aes256-cbc, il client capisce che può usarlo da solo, perché non semplicemente usarlo?

Alcune note aggiuntive:

AGGIORNAMENTO: problema risolto

Come ha spiegato telcoM, il problema riguarda il server: suggerisce solo gli algoritmi di cifratura obsoleti. Ero sicuro che client e server non fossero obsoleti. Ho effettuato l'accesso al server (a proposito, è Synology, aggiornato all'ultima versione disponibile) ed esaminato il /etc/ssh/sshd_config. La primissima (!) Riga di questo file era:

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

Questo è molto strano (il fatto che la riga sia la prima nel file), sono sicuro di non aver mai toccato il file prima. Tuttavia ho cambiato la linea in:

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

riavviato il server (non ho capito come riavviare sshdsolo il servizio), e ora il problema è sparito: posso ssh al server come al solito.


1
Correlati - unix.stackexchange.com/questions/333728/… - mostra informazioni su come disabilitare.
slm

3
Ho avuto lo stesso problema e ho scoperto che puoi facilmente cambiarlo nell'interfaccia web (dal momento che ssh non ha funzionato per me ...), ma andando su "Terminale -> impostazioni avanzate" nel pannello di controllo del DSM e selezionando il Profilo "alto" - per qualche motivo, ho avuto una selezione manuale abilitata lì ... Spero davvero che sia qualcosa che ho fatto e dimenticato, e non qualcosa fatto da un precedente aggiornamento DSM! - le scelte sono ora aes128-ctr, aes128-gcm, aes192 *, aes256 *, dhge-sha256, curve25519-sha256, hmac-sha2-256
Zak

Risposte:


17

Gli -cbcalgoritmi si sono rivelati vulnerabili a un attacco. Di conseguenza, le versioni aggiornate di OpenSSH ora rifiuteranno quegli algoritmi per impostazione predefinita: per ora, sono ancora disponibili se ne hai bisogno, ma come hai scoperto, è necessario abilitarli esplicitamente.

Inizialmente quando la vulnerabilità è stata scoperta (alla fine del 2008, quasi 10 anni fa!) Quegli algoritmi sono stati collocati solo in fondo all'elenco delle priorità per motivi di compatibilità, ma ora la loro deprecazione in SSH ha raggiunto una fase in cui tali algoritmi sono disabilitato per impostazione predefinita. Secondo questa domanda in Cryptography.SE , questa fase di deprecazione stava già avvenendo nel 2014.

Ti preghiamo di considerare questo un leggero promemoria per aggiornare il tuo server SSH , se possibile. (Se si tratta di un'implementazione basata su firmware, vedere se il firmware aggiornato è disponibile per il proprio hardware.)


3

Puoi aggiornare la tua configurazione ssh dal file che si trova in: / etc / ssh / ssh_config

  1. Avvia un terminale.
  2. Incolla la linea nel terminale: sudo nano /etc/ssh/ssh_config
  3. Inserisci la tua password. Premere Invio. Verrà visualizzato il file di configurazione SSH.
  4. Annulla commento alla riga: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  5. Press Ctrl + X. Premi Invio per salvare ed uscire.

1

crea un file all'interno di ~ / .ssh / config e incolla sotto il contenuto

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.