Procedura dettagliata di risoluzione dei problemi di connessione SSH a una macchina virtuale Linux in Azure

Si applica a: ✔️ macchine virtuali Linux

Se il client SSH non riesce a raggiungere il servizio SSH nella VM, i motivi possono essere molti. Se è stata eseguita la procedura generica di risoluzione dei problemi SSH, per risolvere il problema di connessione è necessario ricorrere una procedura dettagliata. Questo articolo descrive i passaggi dettagliati per individuare e risolvere gli eventuali errori della connessione SSH.

Operazioni preliminari

Il diagramma seguente illustrati i componenti coinvolti.

Diagramma che mostra i componenti del servizio SSH.

I passaggi seguenti sono utili per isolare l'origine dell'errore e individuare le soluzioni.

  1. Controllare lo stato della VM nel portale. Nel portale di Azure selezionare Macchine virtuali>Nome macchina virtuale.

    Nel riquadro di stato relativo alla VM deve essere visualizzata l'opzione In esecuzione. Scorrere verso il basso per visualizzare le recenti attività di elaborazione e archiviazione e le risorse di rete.

  2. Selezionare Impostazioni per esaminare gli endpoint, gli indirizzi IP, i gruppi di sicurezza di rete e altre impostazioni.

    La macchina virtuale deve disporre di un endpoint definito per il traffico SSH che è possibile visualizzare in Endpoint o in Gruppo di sicurezza di rete. Gli endpoint nelle VM create tramite Resource Manager vengono archiviati in un gruppo di sicurezza di rete. Verificare che le regole siano state applicate al gruppo di sicurezza di rete e che vi si faccia riferimento nella subnet.

Per verificare la connettività di rete, controllare gli endpoint configurati e determinare se è possibile connettersi alla macchina virtuale tramite un altro protocollo, ad esempio HTTP, o un altro servizio.

Dopo questi passaggi, tentare nuovamente la connessione SSH.

Individuare l'origine del problema

L'impossibilità per il client SSH nel computer in uso di connettersi al servizio SSH nella macchina virtuale di Azure può essere dovuta a problemi o errori di configurazione nelle aree seguenti:

Origine 1: computer client SSH

Per escludere il computer in uso come origine dell'errore, verificare che sia in grado di stabilire connessioni SSH a un altro computer locale basato su Linux.

Diagramma che evidenzia i componenti del computer client SSH.

Se non è possibile stabilire una connessione, eseguire i controlli seguenti sul computer:

  • Un'impostazione locale del firewall che blocca il traffico SSH in ingresso o in uscita (TCP 22)
  • Software proxy client installato localmente che impedisce le connessioni SSH
  • Software di monitoraggio della rete installato localmente che impedisce le connessioni SSH
  • Altri tipi di software di sicurezza che eseguono il monitoraggio del traffico o consentono/non consentono tipi di traffico specifici

Se una delle seguenti condizioni è applicabile, disabilitare temporaneamente il software e tentare una connessione SSH a un computer locale per scoprire il motivo per cui la connessione è bloccata nel computer in uso. Contattare quindi l'amministratore di rete per correggere le impostazioni del software in modo da consentire le connessioni SSH.

Se si usa l'autenticazione del certificato, verificare la presenza delle seguenti autorizzazioni nella cartella .ssh della home directory:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (o qualsiasi altro file in cui siano archiviate le chiavi private)
  • Chmod 644 ~/.ssh/known_hosts (contiene gli host con i quali è stabilita una connessione SSH)

Origine 2: dispositivo periferico dell'organizzazione

Per escludere il dispositivo periferico dell'organizzazione come origine dell'errore, verificare che un computer connesso direttamente a Internet sia in grado di stabilire connessioni SSH alla macchina virtuale di Azure. Se si accede alla macchina virtuale tramite una VPN da sito a sito o una connessione Azure ExpressRoute, passare a Origine 3: Gruppi di sicurezza di rete.

Diagramma che evidenzia il dispositivo perimetrale dell'organizzazione.

Se non si ha un computer connesso direttamente a Internet, creare e usare una nuova macchina virtuale di Azure nel gruppo di risorse o nel servizio cloud della macchina virtuale stessa. Per altre informazioni, vedere Creare una macchina virtuale che esegue Linux in Azure. Dopo aver completato i test, eliminare il gruppo di risorse o la VM e il servizio cloud.

Se è possibile creare una connessione SSH con un computer connesso direttamente a Internet, controllare se nel dispositivo periferico dell'organizzazione si verificano le condizioni seguenti:

  • Un firewall interno blocca il traffico SSH con Internet
  • Un server proxy impedisce le connessioni SSH
  • Un software per il rilevamento di intrusioni o il monitoraggio della rete in esecuzione sui dispositivi presenti nella rete perimetrale impedisce le connessioni SSH

Rivolgersi all'amministratore di rete per correggere le impostazioni dei dispositivi periferici dell'organizzazione in modo da consentire traffico SSH con Internet.

Origine 3: Gruppi di sicurezza di rete

I gruppi di sicurezza di rete consentono di avere un controllo più granulare del traffico in entrata e in uscita consentito. È possibile creare regole che si estendono alle subnet e ai servizi cloud in una rete virtuale di Azure. Controllare le regole del gruppo di sicurezza di rete per garantire che sia consentito il traffico SSH da Internet. Per altre informazioni, vedere Informazioni sui gruppi di sicurezza di rete.

È anche possibile usare la funzione di verifica IP per convalidare la configurazione del gruppo di sicurezza di rete. Per altre informazioni, vedere Panoramica del monitoraggio della rete in Azure.

Origine 4: macchina virtuale di Azure basata su Linux

L'ultima origine di possibili problemi corrisponde alla stessa macchina virtuale di Azure.

Diagramma che evidenzia la macchina virtuale di Azure basata su Linux.

Se non lo si è ancora fatto, seguire le istruzioni per reimpostare la password per le macchine virtuali basate su Linux.

Provare nuovamente la connessione dal computer. Se ancora non riesce, alcuni dei problemi possibili sono:

  • Il servizio SSH non è in esecuzione sulla macchina virtuale di destinazione.
  • Il servizio SSH non è in ascolto sulla porta TCP 22. Per verificare questo aspetto, installare un client telnet nel computer locale ed eseguire "telnet cloudServiceName.cloudapp.net 22". In questo modo è possibile determinare se la macchina virtuale consente comunicazioni in ingresso e in uscita per l'endpoint SSH.
  • Il firewall locale nella macchina virtuale di destinazione include regole che impediscono il traffico SSH in ingresso o in uscita.
  • Un software per il rilevamento di intrusioni o il monitoraggio della rete in esecuzione sulla macchina virtuale di Azure impedisce le connessioni SSH.

Risorse aggiuntive

Per altre informazioni sulla risoluzione dei problemi di accesso alle applicazioni, vedere Risolvere i problemi di accesso a un'applicazione in esecuzione in una macchina virtuale di Azure.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.