Cosa indica l’avviso
Un server dimostra la propria identità con una chiave host. Quando la chiave è diversa da quella salvata in precedenza dal client, OpenSSH mostra REMOTE HOST IDENTIFICATION HAS CHANGED e rifiuta la connessione. Il client non può distinguere una modifica innocua da un attacco, quindi considera l’avviso irrisolto finché non hai effettuato la verifica.
Cause comuni
Le cause abituali sono un server reinstallato, una VM ripristinata o clonata da un’immagine, un indirizzo ora assegnato a un’altra macchina e un bilanciatore di carico che ti indirizza verso nodi diversi. Un aggressore che intercetta la connessione provoca lo stesso avviso. Se non ti aspettavi un cambiamento, fermati e non inserire una password.
Confronta le impronte
Leggi l’impronta reale sul server tramite un canale che non dipenda da questa connessione SSH, come la console del fornitore o quella dell’hypervisor. Il comando ssh-keyscan mostra solo ciò che la rete ti presenta, quindi da solo non dimostra nulla. È utile soltanto per il confronto con il valore ottenuto dalla console.
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
ssh-keyscan -t ed25519 server.example | ssh-keygen -lf -Sostituisci la vecchia voce
Solo dopo aver verificato che le impronte coincidono, rimuovi la vecchia voce e connettiti di nuovo. Una porta non standard ha una voce separata scritta con parentesi quadre. ssh-keygen conserva il file precedente come known_hosts.old. Non disabilitare StrictHostKeyChecking e non eliminare l’intero file known_hosts, perché rimuoveresti la protezione per tutti i tuoi server.
ssh-keygen -R server.example
ssh-keygen -R '[server.example]:2222'
ssh user@server.exampleEvita l’avviso dopo una reinstallazione
Se prevedi di ricostruire un server e vuoi mantenerne l’identità, salva in modo sicuro una copia delle chiavi host in /etc/ssh e ripristinale con lo stesso proprietario e gli stessi permessi. Con i cloni fai il contrario: ogni macchina creata da una stessa immagine deve avere chiavi host proprie, altrimenti più server condividono un’unica identità.
Chiavi host in CH-J Server Manager
L’app conserva le impronte SHA-256 delle chiavi host nel proprio archivio cifrato, separatamente dal file known_hosts di OpenSSH. Quando una chiave cambia, blocca la connessione e mostra l’impronta nota e quella nuova. La voce viene sostituita solo con la tua conferma e l’annullamento non cambia nulla. In Alpha 0.1.1 la verifica riguarda anche ogni jump host e un trasferimento in corso si interrompe quando la chiave cambia. L’app non può verificare la nuova impronta al posto tuo, quindi il controllo tramite un altro canale resta un tuo compito.