Passaggi dettagliati per la risoluzione dei problemi relativi a SSH per la connessione a una macchina virtuale Linux in Azure

Esistono molte possibili ragioni per cui il client SSH potrebbe non essere in grado di raggiungere il servizio SSH sulla VM. Se hai seguito i passaggi generali per la risoluzione dei problemi SSH, devi risolvere ulteriormente il problema di connessione. Questo articolo ti guida attraverso passaggi dettagliati per la risoluzione dei problemi per determinare dove la connessione SSH non funziona e come risolverlo.

Eseguire i passaggi preliminari

Il diagramma seguente mostra i componenti coinvolti.

                             Diagramma che mostra i componenti del servizio SSH.                                           

I passaggi seguenti consentono di isolare l'origine dell'errore e individuare soluzioni o soluzioni alternative.

  1. Verificare lo stato della VM nel portale. Nel Portale di Azure, seleziona Macchine virtuali>Nome VM.

    Il riquadro di stato per la VM dovrebbe mostrare In esecuzione. Scorri verso il basso per mostrare l'attività recente per il calcolo, l'archiviazione e le risorse di rete.

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

    La VM dovrebbe avere un endpoint definito per il traffico SSH che puoi visualizzare in Endpoint o Gruppo di sicurezza di rete. Gli endpoint nelle macchine virtuali creati 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 siano referenziate nella subnet.

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

Dopo questi passaggi, prova di nuovo la connessione SSH.

Trova l'origine del problema

Il client SSH nel computer potrebbe non riuscire a connettersi al servizio SSH nella macchina virtuale di Azure a causa di problemi o configurazioni errate nelle seguenti aree:

Fonte 1: computer client SSH

Per eliminare il computer come origine dell'errore, verificare che possa effettuare connessioni SSH a un altro computer locale basato su Linux.

                             Diagramma che evidenzia i componenti del computer client SSH.                                           

Se la connessione non riesce, controllare i seguenti problemi sul computer:

  • Un'impostazione del firewall locale che blocca il traffico SSH in entrata 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 monitorano il traffico o consentono/non consentono specifici tipi di traffico

Se si verifica una di queste condizioni, disabilita temporaneamente il software e prova una connessione SSH a un computer locale per scoprire il motivo per cui la connessione viene bloccata sul tuo computer. Quindi collaborare con l'amministratore di rete per correggere le impostazioni del software per consentire le connessioni SSH.

Se stai utilizzando l'autenticazione del certificato, verifica di disporre di queste autorizzazioni per la cartella .ssh nella tua home directory:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (o qualsiasi altro file che contiene le tue chiavi private)
  • Chmod 644 ~/.ssh/known_hosts (contiene gli host a cui ti sei connesso tramite SSH)

Fonte 2: dispositivo perimetrale dell'organizzazione

Per eliminare il dispositivo perimetrale dell'organizzazione come origine dell'errore, verificare che un computer connesso direttamente a Internet possa effettuare 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 4: gruppi di sicurezza di rete.

                             Diagramma che evidenzia il dispositivo perimetrale dell'organizzazione.                                           

Se non si dispone di un computer connesso direttamente a Internet, creare una nuova macchina virtuale di Azure nel proprio gruppo di risorse o servizio cloud e usare la nuova macchina virtuale. Per ulteriori informazioni, vedere Creare una macchina virtuale che esegue Linux in Azure. Elimina il gruppo di risorse o la macchina virtuale e il servizio cloud al termine del test.

Se riesci a creare una connessione SSH con un computer connesso direttamente a Internet, controlla il dispositivo perimetrale dell'organizzazione per:

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

Collabora con il tuo amministratore di rete per correggere le impostazioni dei dispositivi perimetrali della tua organizzazione per consentire il traffico SSH con Internet.

Origine 3: endpoint del servizio cloud e ACL

Importante

Le macchine virtuali classiche verranno ritirate il 1° settembre 2023

Se si utilizzano risorse IaaS da ASM, completare la migrazione entro il 1° settembre 2023. Ti invitiamo a effettuare il passaggio prima per sfruttare i numerosi miglioramenti delle funzionalità in Azure Resource Manager.

Per ulteriori informazioni, consultare Migrazione delle risorse IaaS in Azure Resource Manager entro il 1° settembre 2023.

Nota

Questa origine si applica solo alle macchine virtuali create usando il modello di distribuzione classico. Per le macchine virtuali create utilizzando Resource Manager, vai a origine 4: gruppi di sicurezza di rete.

Per eliminare l'endpoint del servizio cloud e l'ACL come origine dell'errore, verificare che un'altra macchina virtuale di Azure nella stessa rete virtuale possa connettersi tramite SSH.

                             Diagramma che evidenzia l'endpoint del servizio cloud e l'ACL.                                           

Se non si dispone di un'altra macchina virtuale nella stessa rete virtuale, è possibile crearne facilmente una. Per ulteriori informazioni, vedere Creare una macchina virtuale Linux in Azure usando l'interfaccia della riga di comando. Elimina la VM aggiuntiva al termine dei test.

Se puoi creare una connessione SSH con una VM nella stessa rete virtuale, controlla le seguenti aree:

  • La configurazione dell'endpoint per il traffico SSH nella macchina virtuale di destinazione. La porta TCP privata dell'endpoint deve corrispondere alla porta TCP su cui è in ascolto il servizio SSH nella macchina virtuale. (La porta predefinita è 22). Verificare il numero di porta TCP SSH nel portale di Azure selezionando Macchine virtuali>Nome VM>Impostazioni>Endpoint.
  • L'ACL per l'endpoint del traffico SSH nella macchina virtuale di destinazione. Un ACL consente di specificare il traffico in entrata consentito o negato da Internet, in base all'indirizzo IP di origine. Gli ACL configurati in modo errato possono impedire il traffico SSH in entrata verso l'endpoint. Controlla i tuoi ACL per assicurarti che il traffico in entrata dagli indirizzi IP pubblici del tuo proxy o altro server perimetrale sia consentito. Per ulteriori informazioni, vedere Informazioni sugli elenchi di controllo di accesso alla rete (ACL).

Per eliminare l'endpoint come origine del problema, rimuovere l'endpoint corrente, creare un altro endpoint e specificare il nome SSH (porta TCP 22 per il numero di porta pubblica e privata). Per ulteriori informazioni, vedere Configurare gli endpoint in una macchina virtuale in Azure.

Fonte 4: 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 su subnet e servizi cloud in una rete virtuale di Azure. Controlla le regole del tuo gruppo di sicurezza di rete per assicurarti che il traffico SSH da e verso Internet sia consentito. Per ulteriori informazioni, vedere Informazioni sui gruppi di sicurezza di rete.

È anche possibile usare IP Verify per convalidare la configurazione NSG. Per ulteriori informazioni, vedere Panoramica sul monitoraggio della rete di Azure.

Origine 5: macchina virtuale di Azure basata su Linux

L'ultima fonte di possibili problemi è la stessa macchina virtuale di Azure.

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

Se non lo hai già fatto, segui le istruzioni per reimpostare una password per le macchine virtuali basate su Linux.

Prova a connetterti nuovamente dal tuo computer. Se il problema persiste, i seguenti sono alcuni dei possibili problemi:

  • Il servizio SSH non è in esecuzione sulla macchina virtuale di destinazione.
  • Il servizio SSH non è in ascolto sulla porta TCP 22. Per testare, installa un client telnet sul tuo computer locale ed esegui "telnet cloudServiceName.cloudapp.net 22". Questo passaggio determina se la macchina virtuale consente la comunicazione in entrata e in uscita all'endpoint SSH.
  • Il firewall locale sulla macchina virtuale di destinazione dispone di regole che impediscono il traffico SSH in entrata o in uscita.
  • Il rilevamento delle intrusioni o il software di monitoraggio della rete in esecuzione nella macchina virtuale di Azure impedisce le connessioni SSH.

Risorse aggiuntive

Per ulteriori 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.