Come appare il messaggio
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Host key verification failed.Cause frequenti
- Il server è stato reinstallato o le sue chiavi SSH sono state rigenerate.
- L'indirizzo IP o il nome host ora appartiene a un'altra macchina, ad esempio dopo la ricostruzione di un cloud.
- Un load balancer o un cluster distribuisce server diversi con chiavi diverse.
- Il DNS punta a un host diverso da prima.
- Raramente: qualcuno sta intercettando la connessione.
Verifica
- Quale chiave è salvata per questo host?
ssh-keygen -F server.example.com - Impronta che il server mostra ora
ssh-keyscan -t ed25519 server.example.com 2>/dev/null | ssh-keygen -lf - - Impronta sul server stesso (da console o canale fidato)
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
Soluzione
- Confronta le due impronte. Se corrispondono al nuovo server che ti aspetti, prosegui.
- Rimuovi solo la voce vecchia:
ssh-keygen -R server.example.com(e l'indirizzo IP, se è elencato anche quello). - Collegati di nuovo e accetta la nuova chiave dopo aver controllato l'impronta.
- Se la chiave è cambiata senza che te l'aspettassi, non collegarti. Chiedi al proprietario o usa la console del provider.
- Per server ricostruiti che devono mantenere l'identità, ripristina dal backup i vecchi file
/etc/ssh/ssh_host_*.
Domande frequenti
Posso disattivare l'avviso con StrictHostKeyChecking=no?
Tecnicamente sì, ma si perde la protezione contro l'intercettazione. Meglio correggere la voce, e non usare mai quell'opzione in modo permanente.
Perché compare dopo ogni ricostruzione del mio server cloud?
Un nuovo server genera nuove chiavi host. Automatizza la pulizia con ssh-keygen -R nello script di ricostruzione, oppure salva e ripristina le chiavi host.