Sto cercando di aggiornare il mio server SSH da chiavi RSA a 2048 bit a chiavi più grandi, poiché i consigli sono di eliminare presto le chiavi a 2048 bit.
Ho generato una nuova chiave, quindi l'ho aggiunta alla configurazione sshd, in questo modo:
HostKey / etc / ssh / ssh_host_rsa_key (prima la vecchia chiave a 2k bit) HostKey / etc / ssh / ssh_host_rsa4096_key (nuova chiave più grande seconda )
Dopo il riavvio sshd
, ho inviato all'host, non ricevo l'avviso di modifica dell'identificazione, tuttavia anche il nuovo non viene memorizzato nella cache ~/.ssh/known_hosts
. Se inserisco le righe nell'ordine opposto, ricevo l'avviso di modifica dell'identificazione. Allo stesso modo, quando aggiungo una chiave ed25519, indipendentemente dall'ordine in cui la inserisco, il client non aggiunge la nuova chiave al file hosts noto.
Ciò sembra rendere impossibile il rollover delle chiavi dell'host SSH, difficile da credere, ma in realtà è vero che, considerando la sicurezza, è necessario aggiornare le chiavi.
So che puoi semplicemente scambiare la chiave, quindi ogni client deve eseguire ssh-keygen -R
per rimuovere la vecchia chiave, quindi verificare manualmente e accettare la nuova chiave, ma è una vera seccatura, soprattutto se hai molti client che si connettono o non amministrano tutti i clienti. Per non parlare del fatto che, se non gestisci i client, ci sono ottime possibilità che non controllino effettivamente la chiave host e invece premano semplicemente Y, quindi il tentativo di migliorare la sicurezza probabilmente ti aprirà a man-in attacchi al centro invece.
Esiste un modo per far funzionare gli aggiornamenti delle chiavi host SSH? Cioè, i clienti dovrebbero imparare la nuova chiave più sicura (e speriamo anche di non apprendere la chiave obsoleta). E senza dare alla chiave host un avviso man-in-the-middle modificato.