Sto giocando con le configurazioni OpenSSH e sto analizzando i parametri di Diffie-Hellman. Utilizzo lo strumento di GDSSecurity per controllare le impostazioni DH e questa pagina per visualizzare altre impostazioni SSH.
Per i funs, ho rimosso tutti i moduli più piccoli di 4096 bit da /etc/ssh/moduli
:
$ awk '{print $5}' /etc/ssh/moduli | sort | uniq
4095
6143
8191
Mi aspetto che lo scambio di chiavi fallisca se il client accetta solo 2048 bit o 3072 bit group. È interessante notare che fallisce in quest'ultimo caso, ma non nel caso precedente, a 2048 bit.
KEX proposal client: diffie-hellman-group-exchange-sha256
KEX proposal server: [email protected],diffie-hellman-group-exchange-sha256
KEX algorithm chosen: diffie-hellman-group-exchange-sha256
KEX client group sizes: min = 2048, nbits = 2048, max = 2048
KEX server-chosen group size in bits: 2048
Warning: Permanently added 'test,x.x.x.x' (ED25519) to the list of known hosts.
KEX proposal client: diffie-hellman-group-exchange-sha256
KEX proposal server: [email protected],diffie-hellman-group-exchange-sha256
KEX algorithm chosen: diffie-hellman-group-exchange-sha256
KEX client group sizes: min = 3072, nbits = 3072, max = 3072
ssh_dispatch_run_fatal: Connection to x.x.x.x: DH GEX group out of range
Il sito sopra menzionato afferma anche uno scambio di chiavi con successo utilizzando un gruppo di 2048 bit.
Conosco troppo poco i dettagli né del protocollo SSH né di OpenSSH per capire cosa sta succedendo qui. OpenSSH utilizza un parametro di fallback se nessun gruppo appropriato è disponibile dal file dei moduli?