Connect to a Linux VM (Connettersi a una macchina virtuale Linux)

Quando si ospita una macchina virtuale Linux in Azure, il metodo più comune per accedere a tale macchina virtuale è tramite secure shell Protocol (SSH). Qualsiasi client SSH standard comunemente disponibile in Linux e Windows consente di connettersi. È anche possibile usare Azure Cloud Shell da qualsiasi browser.

Questo documento descrive come connettersi, tramite SSH, a una macchina virtuale con un indirizzo IP pubblico. Se è necessario connettersi a una macchina virtuale senza un indirizzo IP pubblico, vedere Servizio Azure Bastion.

Prerequisiti

  • È necessaria una coppia di chiavi SSH. Se non è già disponibile, Azure crea una coppia di chiavi durante il processo di distribuzione. Per informazioni sulla creazione manuale, vedere Creare e usare una coppia di chiavi SSH pubblica-privata per le macchine virtuali Linux in Azure.

  • È necessario un gruppo di sicurezza di rete esistente. La maggior parte delle macchine virtuali ha un gruppo di sicurezza di rete per impostazione predefinita, ma se non è già disponibile, è possibile crearne una e collegarla manualmente. Per altre informazioni, vedere Creare, modificare o eliminare un gruppo di sicurezza di rete.

  • Per connettersi a una macchina virtuale Linux, è necessaria la porta appropriata aperta. In genere SSH usa la porta 22. Le istruzioni seguenti presuppongono la porta 22, ma il processo è lo stesso per altri numeri di porta. È possibile verificare che una porta appropriata sia aperta per SSH usando lo strumento di risoluzione dei problemi o controllando manualmente le impostazioni della macchina virtuale. Per verificare se la porta 22 è aperta:

    1. Nella pagina della macchina virtuale selezionare Rete dal menu a sinistra.

    2. Nella pagina Rete verificare se è presente una regola che consente TCP sulla porta 22 dall'indirizzo IP del computer in uso per connettersi alla macchina virtuale. Se la regola esiste, è possibile passare alla sezione successiva.

      Screenshot showing how to check to see if there's already a rule allowing S S H connections.

    3. Se non esiste una regola, aggiungerne una selezionando Aggiungi regola porta in ingresso.

    4. Per Servizio selezionare SSH dall'elenco a discesa.

      Screenshot showing where to choose S S H when creating a new N S G rule.

    5. Modifica priorità e origine , se necessario

    6. In Nome digitare SSH.

    7. Al termine, selezionare Aggiungi.

    8. Dovrebbe ora essere presente una regola SSH nella tabella delle regole delle porte in ingresso.

  • La macchina virtuale deve avere un indirizzo IP pubblico. Per verificare se la macchina virtuale ha un indirizzo IP pubblico, selezionare Panoramica dal menu a sinistra e osservare la sezione Rete . Se viene visualizzato un indirizzo IP accanto all'indirizzo IP pubblico, la macchina virtuale ha un indirizzo IP pubblico

    Se la macchina virtuale non ha un indirizzo IP pubblico, l'aspetto sarà il seguente:

    Screenshot of how the networking section looks when you don't have a public I P.

    Per altre informazioni sull'aggiunta di un indirizzo IP pubblico a una macchina virtuale esistente, vedere Associare un indirizzo IP pubblico a una macchina virtuale

  • Verificare che la macchina virtuale sia in esecuzione. Nella sezione Informazioni di base della scheda Panoramica verificare lo stato della macchina virtuale in esecuzione. Per avviare la macchina virtuale, selezionare Avvia nella parte superiore della pagina.

    Screenshot showing how to check to make sure your virtual machine is in the running state.

In caso di problemi di connessione, è anche possibile usare il portale:

  1. Passare al portale di Azure per connettersi a una macchina virtuale. Cercare e selezionare Macchine virtuali.
  2. Selezionare la macchina virtuale dall'elenco.
  3. Selezionare Connessione dal menu a sinistra.
  4. Selezionare l'opzione più adatta al modo preferito di connettersi. Il portale consente di esaminare i prerequisiti per la connessione.

Connettersi alla macchina virtuale

Dopo aver soddisfatto i prerequisiti precedenti, si è pronti per connettersi alla macchina virtuale. Aprire il client SSH preferito. Il comando client SSH è in genere incluso in Linux, macOS e Windows. Se si usa Windows 7 o versione precedente, in cui OpenSSH Win32 non è incluso per impostazione predefinita, è consigliabile installare WSL o usare Azure Cloud Shell dal browser.

Nota

Gli esempi seguenti presuppongono che la chiave SSH sia nel formato key.pem. Se è stata usata l'interfaccia della riga di comando o Azure PowerShell per scaricare le chiavi, potrebbero essere nel formato id_rsa.

SSH con una nuova coppia di chiavi

  1. Verificare che le chiavi pubbliche e private siano nella directory corretta. La directory è in genere ~/.ssh.

    Se le chiavi sono state generate manualmente o generate con l'interfaccia della riga di comando, è probabile che le chiavi siano già presenti. Tuttavia, se sono stati scaricati in formato pem dal portale di Azure, potrebbe essere necessario spostarli nella posizione corretta. Lo spostamento delle chiavi viene eseguito con la sintassi seguente: mv PRIVATE_KEY_SOURCE PRIVATE_KEY_DESTINATION

    Ad esempio, se la chiave si trova nella Downloads cartella e myKey.pem è il nome della chiave SSH, digitare:

    mv /Downloads/myKey.pem ~/.ssh
    

    Nota

    Se si usa WSL, i file locali vengono trovati nella mnt/c/ directory . Di conseguenza, il percorso della cartella downloads e della chiave SSH sarebbe /mnt/c/Users/{USERNAME}/Downloads/myKey.pem

  2. Assicurarsi di avere accesso in sola lettura alla chiave privata eseguendo

    chmod 400 ~/.ssh/myKey.pem
    
  3. Eseguire il comando SSH con la sintassi seguente: ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Ad esempio, se si azureuser tratta del nome utente creato e 20.51.230.13 dell'indirizzo IP pubblico della macchina virtuale, digitare:

    ssh -i ~/.ssh/myKey.pem azureuser@20.51.230.13
    
  4. Convalidare l'impronta digitale restituita.

    Se non si è mai connessi a questa macchina virtuale in precedenza, viene chiesto di verificare l'impronta digitale degli host. È tentata di accettare l'impronta digitale presentata, ma che ti espone a una persona potenziale nel mezzo attacco. È consigliabile convalidare sempre l'impronta digitale degli host. È sufficiente eseguire questa operazione la prima volta che ci si connette da un client. Per ottenere l'impronta digitale dell'host tramite il portale, usare la funzionalità Esegui comando per eseguire il comando:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  5. Operazione riuscita. A questo momento si dovrebbe essere connessi alla macchina virtuale. Se non è possibile connettersi, vedere Risolvere i problemi relativi alle connessioni SSH.

SSH con chiave pubblica esistente

  1. Eseguire il comando seguente nel client SSH. In questo esempio 20.51.230.13 è l'indirizzo IP pubblico della macchina virtuale e azureuser è il nome utente creato al momento della creazione della macchina virtuale.

    ssh azureuser@20.51.230.13
    
  2. Convalidare l'impronta digitale restituita.

    Se non si è mai connessi alla macchina virtuale desiderata dal client SSH corrente prima di dover verificare l'impronta digitale dell'host. Mentre l'opzione predefinita consiste nell'accettare l'impronta digitale presentata, si è esposti a una possibile "persona nel mezzo attacco". È sempre necessario convalidare l'impronta digitale dell'host, che deve essere eseguita solo la prima volta che il client si connette. Per ottenere l'impronta digitale dell'host tramite il portale, usare la funzionalità Esegui comando per eseguire il comando:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. Operazione riuscita. A questo momento si dovrebbe essere connessi alla macchina virtuale. Se non è possibile connettersi, vedere la guida alla risoluzione dei problemi.

Autenticazione della password

Avviso

Questo tipo di metodo di autenticazione non è sicuro come una coppia di chiavi SSH e non è consigliato.

  1. Eseguire il comando seguente nel client SSH. In questo esempio 20.51.230.13 è l'indirizzo IP pubblico della macchina virtuale e azureuser è il nome utente creato al momento della creazione della macchina virtuale.

    ssh azureuser@20.51.230.13
    

    Se la password o il nome utente sono stati dimenticati, vedere Reimpostare l'accesso a una macchina virtuale di Azure

  2. Convalidare l'impronta digitale restituita.

    Se non si è mai connessi alla macchina virtuale desiderata dal client SSH corrente prima di dover verificare l'impronta digitale dell'host. Mentre l'opzione predefinita consiste nell'accettare l'impronta digitale presentata, si è esposti a una possibile "persona nel mezzo attacco". È sempre necessario convalidare l'impronta digitale dell'host, che deve essere eseguita solo la prima volta che il client si connette. Per ottenere l'impronta digitale dell'host tramite il portale, usare la funzionalità Esegui comando per eseguire il comando:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. Operazione riuscita. A questo momento si dovrebbe essere connessi alla macchina virtuale. Se non è possibile connettersi, vedere Risolvere i problemi relativi alle connessioni SSH.

Passaggi successivi

Informazioni su come trasferire file in una macchina virtuale esistente, vedere Usare SCP per spostare i file da e verso una macchina virtuale.