L’errore “authenticity of host can’t be established” si verifica di solito la prima volta che si tenta di connettersi a un server tramite SSH (Secure Shell). Tuttavia, può anche indicare un problema serio. Ad esempio, qualcuno potrebbe impersonare l’identità del server.

Fortunatamente, esistono diversi modi per risolvere l’errore “authenticity of host can’t be established” e garantire una connessione sicura e senza problemi. Ad esempio, potrebbe essere necessario creare una Certificate Authority (CA) autogestita, aggiornare il software SSH o verificare l’host remoto.

In questo post daremo un’occhiata più da vicino all’errore “authenticity of host can’t be established”. Quindi, esamineremo alcune cause comuni e discuteremo otto semplici soluzioni. Cominciamo!

Cos’è l’errore “authenticity of host can’t be established”?

L’errore “authenticity of host can’t be established” è un errore comune che si verifica soprattutto quando si utilizza SSH (Secure Shell). In genere, viene richiesto di autenticare la connessione SSH con una password.

Tuttavia, è anche possibile autenticarla utilizzando la crittografia a chiave pubblica. Ciò comporta la generazione di una coppia di chiavi SSH composta da una chiave pubblica e una privata. La chiave privata rimane sul proprio sistema, mentre la chiave pubblica viene copiata sul sistema a cui ci si sta connettendo.

Spesso questo messaggio di errore viene visualizzato la prima volta che ci si connette al server tramite SSH. Questo perché il client SSH non conosce il server.

Se vi fidate del server, potete procedere con l’eliminazione dell’errore. Questa azione inserirà la chiave SSH nel vostro file known_hosts. In seguito, ogni volta che vi connetterete, potrete confrontare la chiave ricevuta dall’host con quella presente nel vostro file known_hosts per verificare l’identità del server.

Se vi siete già connessi al server in passato, l’errore “authenticity of host can’t be established” suggerisce che il server è stato riconfigurato con una nuova chiave. Tuttavia, questo messaggio può anche indicare un problema.

Ad esempio, potrebbe accadere che qualcuno si stia spacciando per l’identità del server e sia in grado di intercettare i dati inviati tramite la connessione. Nella prossima sezione analizzeremo più da vicino le cause principali.

Quali sono le cause dell’errore “authenticity of host can’t be established”?

Le cause dell’errore “authenticity of host can’t be established” sono molteplici. Ecco alcune delle più comuni:

  • La chiave pubblica dell’host remoto è cambiata. Sebbene questo significhi che il server è stato aggiornato, può anche indicare che l’host è stato compromesso. In questo caso, un aggressore potrebbe cercare di impersonare l’host.
  • Il client non si è mai connesso all’host remoto. In questo caso, l’SSH non conosce il server e potrebbe restituire un errore.
  • Chiavi host multiple. Un server può avere più chiavi host come ECDSA e RSA. Se si sta utilizzando la chiave sbagliata, si potrebbe ricevere un errore.
  • La chiave dell’host è stata cancellata o danneggiata. In questo caso, verrà sollevata un’eccezione SSHException che produrrà l’errore “authenticity of host can’t be established”.
  • Il DNS dell’host remoto è mal configurato. Un sistema di nomi di dominio (DNS) mal configurato potrebbe collegarvi a un host con una chiave host errata.
  • Un attacco man-in-the-middle. L’errore potrebbe indicare che un aggressore sta intercettando la connessione tra voi e l’host remoto.

Per migliorare la sicurezza e le prestazioni, è importante che scegliate un servizio di hosting di qualità. Con l’Hosting di Applicazioni di Kinsta, potrete eseguire i vostri progetti sull’infrastruttura di Google Cloud Platforms:

Il servizio di Hosting di Applicazioni di Kinsta
Il servizio di Hosting di Applicazioni di Kinsta

Inoltre, la piattaforma è supportata dalle soluzioni di sicurezza di livello enterprise di Cloudflare. Queste includono un firewall e una protezione DDoS.

Potrete anche accedere a certificati SSL gratuiti o installarne di personalizzati. Infine, grazie al nostro modello di prezzo basato sull’uso, scalare le risorse in base alla crescita della vostra attività sarà semplicissimo.

Come risolvere l’errore “authenticity of host can’t be established” (8 metodi)

Ora che sapete qualcosa di più sull’errore “authenticity of host can’t be established”, vediamo otto modi per risolverlo.

1. Controllare la connessione

Il primo modo per risolvere l’errore “authenticity of host can’t be established” è assicurarsi che la connessione di rete sia stabile. Inoltre, è bene verificare che non ci sia nulla che blocchi la connessione.

Ad esempio, potreste avere un programma antivirus o un Web Application Firewall (WAF) attivato. Questo può interferire con la connessione, quindi potreste disattivare temporaneamente il software per cercare di eliminare il messaggio di errore.

2. Sostituire l’indirizzo IP

Molte persone pensano erroneamente che ogni server remoto abbia una sola chiave, mentre in realtà un server può avere più chiavi host. Quindi, potreste utilizzare la chiave host RSA, ma il server vi presenta una chiave host ECDSA.

Pertanto, vedrete un messaggio di errore perché la chiave host è diversa. Se avete configurato esplicitamente l’opzione HostKeyAlgorithms, SSH la rispetterà e preferirà gli algoritmi che avete specificato.

Potete controllare i file ~/.ssh/config e /etc/ssh/ssh_config per verificare se è così. In tal caso, aggiungete una voce al vostro file ~/. ssh/config come questa:

# Update with the real IP address. Host 192.0.2.1 HostKeyAlgorithms rsa-sha2-512,rsa-sha2-256,ssh-rsa

È importante notare che in questo modo si abilita l’uso delle firme SHA-1. Le firme SHA-1 non sono più considerate sicure perché le vulnerabilità sono ben note. Pertanto, se sapete che il server supporta le firme SHA-2, potete rimuovere il comando.

Potrebbe anche accadere che il sistema non utilizzi le voci con hash. Pertanto, la voce che avete aggiunto esplicitamente potrebbe non essere corretta.

In questo caso, dovrete controllare gli stessi file di configurazione per HashKnownHosts e modificare la voce di conseguenza. Potete anche utilizzare ssh-keygen -F 192.0.2.1 -l (sostituendo l’indirizzo IP) per vedere se c’è una corrispondenza per la voce.

3. Saltare il controllo della chiave host

Ci sono casi in cui il messaggio di errore “authenticity of host can’t be established” è innocuo. Ad esempio, la chiave host potrebbe essere stata modificata in modo legittimo se il server è stato aggiornato o riconfigurato di recente.

In questo caso, potete saltare la procedura di verifica della chiave inviando la chiave a un file known_hosts nullo. In questo file dovrete aggiungere la seguente voce:

$ ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@host

Potete anche impostare queste opzioni in modo permanente in ~/.ssh/config (per l’utente corrente). Se volete impostarle per tutti gli utenti, usate invece /etc/ssh/ssh_config.

4. Creare una propria Certified Authority (CA) autogestita

I browser web hanno preinstallati i certificati radice X509 che vi permettono di fidarvi dei certificati Secure Sockets Layer (SSL) di siti che non avete mai visitato prima. Mentre alcuni client SSH supportano X509 o PKI, altri non lo fanno. Questo significa che non potete usare un certificato SSL di VeriSign per aggirare la richiesta di autenticità se il client non lo supporta.

Tuttavia, potreste essere in grado di eliminare l’errore “authenticity of host can’t be established” creando una vostra Autorità di Certificazione, o Certified Authority (CA), autogestita. In questo modo potrete accedere al server. Inoltre, qualsiasi client con la vostra chiave pubblica si fiderà automaticamente dei vostri server.

Per iniziare, dovete generare una chiavi SSH. Potete farlo con la seguente voce:

ssh-keygen -f cert_signer

Quindi, potete firmare la chiave pubblica dell’host di ogni server come segue:

ssh-keygen -s cert_signer -I cert_signer -h -n www.example.com -V +52w /etc/ssh/ssh_host_rsa_key.pub

Questo genera una chiave pubblica host firmata:

/etc/ssh/ssh_host_rsa_key-cert.pub

Ora andate al file /etc/ssh/sshd_config. Qui, potete puntare l’HostCertificate a questo file: HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub.

Quindi, riavviate il servizio SSH. Sul client SSH, dovrete aggiungere il seguente codice al file known_hosts:

@cert-authority *.example.com ssh-rsa AAAAB3Nz...cYwy+1Y2u/

Questa voce include:

  • L’autorità di certificazione
  • Il dominio (example.com)
  • Il contenuto completo della chiave pubblica

L’errore dovrebbe scomparire, poiché la chiave pubblica cert_signer si fiderà di qualsiasi server la cui chiave pubblica host è firmata dalla chiave privata cert_signer.

5. Aggiornare il software SSH

Un’altra soluzione all’errore “authenticity of host can’t be established” è quella di aggiornare il software del vostro client SSH per assicurarvi di utilizzare l’ultima versione. In questo modo, potrete essere certi che il vostro software sia compatibile con l’host remoto.

Gli aggiornamenti spesso contengono correzioni di bug e patch di sicurezza che migliorano la stabilità e la sicurezza della connessione. Una volta aggiornato il software, dovreste essere in grado di procedere senza visualizzare il messaggio di errore.

6. Verificare l’host remoto

L’errore “authenticity of host can’t be established” potrebbe presentarsi anche se la chiave dell’host non è corretta o è scaduta. Per questo motivo, dovreste verificare che la chiave dell’host remoto sia stata generata correttamente e che sia ancora valida.

In questo modo, potrete verificare che il server remoto sia online e disponibile per le connessioni. Nel frattempo, potete assicurarvi che la chiave dell’host sia corretta. In questo modo, avrete la conferma che vi state connettendo al server giusto (e non a un server maligno che si spaccia per il server di destinazione).

Per iniziare, controllate l’host remoto utilizzando il comando “ssh-keyscan”:

ssh-keyscan example.com

Questo comando recupera la chiave pubblica dell’host remoto e la visualizza sul terminale. Quindi, potete confrontare questa chiave con quella memorizzata nel file known_hosts (o con quella fornita dall’amministratore del server).

Se le chiavi corrispondono, è probabile che l’host remoto sia il server corretto. Tuttavia, se le chiavi non corrispondono, è meglio segnalare il problema all’amministratore del server e interrompere la connessione.

7. Rimuovere la vecchia chiave host

L’errore “authenticity of host can’t be established” può anche significare che la chiave host è cambiata. Pertanto, potreste risolvere l’errore rimuovendo la vecchia chiave dal file known_hosts.

La chiave del server remoto potrebbe essere stata aggiornata a causa di una modifica della configurazione del server o di una violazione della sicurezza. In questo caso, la vecchia chiave dell’host non corrisponderà a quella nuova e si verificherà un errore.

Tutto ciò che dovete fare è eliminare la voce della chiave pubblica dell’host remoto memorizzata in known_hosts. Per farlo, usate il seguente comando:

ssh-keygen -R example.com

Questo rimuoverà la voce dal file known_hosts. Quindi, la prossima volta che proverete a connettervi al server tramite SSH, dovrete verificare la nuova chiave host.

8. Svuotare il DNS

Infine, può capitare che il Domain Name System (DNS) del vostro host sia mal configurato. Questo può portare a connettersi a un host con la chiave sbagliata, causando l’errore “authenticity of host can’t be established”.

Il modo più semplice per risolvere questo problema è quello di svuotare il DNS. Per farlo, aprite il Prompt dei comandi di Windows digitando “cmd” nella barra di ricerca:

Prompt dei comandi in Windows
Prompt dei comandi in Windows

Quindi, inserite il seguente comando SSH:

ipconfig/flushdns

Questo dovrebbe cancellare l’errore e permettervi di connettervi al server.

Riepilogo

L’errore “Impossibile stabilire l’autenticità dell’host” si verifica di solito quando si cerca di connettersi a un server tramite SSH. Può indicare che il server è stato riconfigurato. Tuttavia, può anche significare che il server è stato compromesso.

Se è la prima volta che vi connettete, è normale vedere questo messaggio di errore e potete semplicemente ignorarlo. In caso contrario, potrebbe essere necessario verificare l’host per assicurarsi di connettersi al server giusto. Potrebbe anche essere necessario eliminare il vecchio host dal file known_hosts o aggiornare il software SSH.

Un altro modo semplice per aumentare la sicurezza della vostra applicazione è utilizzare un host di qualità come Kinsta. Tutti i nostri piani offrono un supporto di alta qualità per aiutarvi a risolvere qualsiasi problema possiate incontrare!