L'altra risposta non sembra rispondere alla domanda, solo chiarire l'uso dei termini e delle ipotesi sbagliate. Quindi se vuoi sapere qual è meglio, diffie-hellman-group14-sha1 vs diffie-hellman-group14-sha1, allora ecco il mio tentativo.
Una parte della domanda è tra SHA2 e SHA1. SHA2 è più strong di SHA1 e diffie-hellman-group-exchange-sha256 è SHA2.
L'altro è i numeri primi usati nello scambio. I numeri primi del gruppo 14 sono considerati forti (2048 bit), ma sono noti pubblicamente. I primi di scambio di gruppo dipendono da un elenco lato server di primi e limitazioni lato client. In OpenSSH su Linux, hai un file / etc / ssh / moduli che contiene questi. Quel file è fornito dalla distribuzione, quindi sono anche noti pubblicamente, ma puoi cambiarli.
Per vedere il conteggio di ogni dimensione che hai ora, prova qualcosa del tipo:
awk '$1 != "#" {print $5+1}' /etc/ssh/moduli | sort | uniq -c
Che su alcuni sistemi Ubuntu 16.04 che ho testato dicono la stessa cosa:
49 1536
40 2048
37 3072
38 4096
37 6144
36 7680
29 8192
Quindi potenzialmente lo scambio di gruppo potrebbe usare chiavi molto piccole di 1536. Quindi se rimuovi tutti i più piccoli per abbinarli a group14 (Oakley Group 14, size 2048), probabilmente dovrebbe essere migliore (dato che sha256 è migliore di sha1), e anche perché potresti controllarli per non essere conosciuti pubblicamente. Il cambiamento di dimensioni potrebbe non avere alcun effetto se i clienti stanno limitando il proprio minimo e massimo comunque ... ma non può ferire. o se preferiscono una grande dimensione ma min è bassa, un attacco di downgrade come LogJam potrebbe funzionare.
Per ridimensionare il tuo file in modo che contenga solo numeri primi 2048 e più grandi (ancora noti pubblicamente), potresti usare:
awk '$1 == "#" || $5 >= 2048 {print $0}' /etc/ssh/moduli > /etc/ssh/moduli.tmp
mv /etc/ssh/moduli /etc/ssh/moduli.bak.$(date +%s)
mv /etc/ssh/moduli.tmp /etc/ssh/moduli
E per creare un nuovo file di numeri primi unici, forse non noti pubblicamente (esiste ovviamente una sovrapposizione), puoi generarli (che potrebbero richiedere ore):
mv /etc/ssh/moduli /etc/ssh/moduli.bak.$(date +%s)
ssh-keygen -G /tmp/moduli -b 2048
ssh-keygen -T /etc/ssh/moduli -f /tmp/moduli
Suggerisco di riavviare sshd dopo averlo fatto.
Vedi anche link