Connessione a una macchina virtuale usando Bastion e un client nativo Linux

Questo articolo illustra come connettersi tramite Azure Bastion a una macchina virtuale nella rete virtuale usando il client nativo nel computer Linux locale. La funzionalità client nativa consente di connettersi alle macchine virtuali di destinazione tramite Bastion usando l'interfaccia della riga di comando di Azure ed espande le opzioni di accesso per includere la coppia di chiavi SSH locale e l'ID Microsoft Entra. Per altre informazioni e procedure per configurare Bastion per le connessioni client native, vedere Configurare Bastion per le connessioni client native. Connessione ions tramite client nativo richiedono lo SKU Bastion Standard.

Diagram shows a connection via native client.

Dopo aver configurato Bastion per il supporto client nativo, è possibile connettersi a una macchina virtuale usando un client Linux nativo. Il metodo usato per connettersi dipende sia dal client da cui ci si sta connettendo che dalla macchina virtuale a cui ci si connette. L'elenco seguente illustra alcuni dei modi disponibili per connettersi da un client nativo Linux. Vedere Connessione alle macchine virtuali per l'elenco completo che mostra le combinazioni di connessioni/funzionalità client disponibili.

  • Connessione a una macchina virtuale Linux usando az network bastion ssh.
  • Connessione a una macchina virtuale Windows usando az network bastion tunnel.
  • Connessione a qualsiasi macchina virtuale usando az network bastion tunnel.
  • Caricare i file nella macchina virtuale di destinazione tramite SSH usando az network bastion tunnel. Il download di file dalla macchina virtuale di destinazione al client locale non è attualmente supportato per questo comando.

Prerequisiti

Prima di iniziare, verificare di avere i prerequisiti seguenti:

  • Viene installata la versione più recente dei comandi dell'interfaccia della riga di comando (versione 2.32 o successiva). È possibile aggiornare l'interfaccia della riga di comando per Bastion usando az extension update --name bastion. Per informazioni sull'installazione dei comandi dell'interfaccia della riga di comando, vedere Installare l'interfaccia della riga di comando di Azure e Introduzione all'interfaccia della riga di comando di Azure.
  • Azure Bastion è già distribuito e configurato per la rete virtuale. Per la procedura, vedere Configurare Bastion per le connessioni client native.
  • Una macchina virtuale nella rete virtuale.
  • ID risorsa della macchina virtuale. L'ID risorsa può essere facilmente posizionato nella portale di Azure. Passare alla pagina Panoramica per la macchina virtuale e selezionare il collegamento Visualizzazione JSON per aprire il file JSON della risorsa. Copiare l'ID risorsa nella parte superiore della pagina negli Appunti da usare in un secondo momento durante la connessione alla macchina virtuale.
  • Se si prevede di accedere alla macchina virtuale usando le credenziali di Microsoft Entra, assicurarsi che la macchina virtuale sia configurata usando uno dei metodi seguenti:

Verificare ruoli e porte

Verificare che i ruoli e le porte seguenti siano configurati per connettersi alla macchina virtuale.

Ruoli richiesti

  • Ruolo Lettore nella macchina virtuale.

  • Ruolo Lettore nella scheda di interfaccia di rete con l'indirizzo IP privato della macchina virtuale.

  • Ruolo Lettore nella risorsa Azure Bastion.

  • Macchina virtuale Amministrazione istrator Account di accesso o account di accesso utente macchina virtuale, se si usa il metodo di accesso di Microsoft Entra. È necessario eseguire questa operazione solo se si abilita l'accesso a Microsoft Entra usando i processi descritti in uno di questi articoli:

Porte

Per connettersi a una macchina virtuale Linux usando il supporto client nativo, è necessario avere le porte seguenti aperte nella macchina virtuale Linux:

  • Porta in ingresso: SSH (22) o
  • Porta in ingresso: valore personalizzato (sarà quindi necessario specificare questa porta personalizzata quando ci si connette alla macchina virtuale tramite Azure Bastion)

Per connettersi a una macchina virtuale Windows usando il supporto client nativo, è necessario che nella macchina virtuale Windows siano aperte le porte seguenti:

  • Porta in ingresso: RDP (3389) o
  • Porta in ingresso: valore personalizzato (sarà quindi necessario specificare questa porta personalizzata quando ci si connette alla macchina virtuale tramite Azure Bastion)

Per informazioni su come configurare al meglio i gruppi di sicurezza di rete con Azure Bastion, vedere Uso dell'accesso al gruppo di sicurezza di rete e di Azure Bastion.

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

I passaggi descritti nelle sezioni seguenti consentono di connettersi a una macchina virtuale Linux da un client nativo Linux usando il comando az network bastion . Questa estensione può essere installata eseguendo . az extension add --name bastion

Quando ci si connette usando questo comando, i trasferimenti di file non sono supportati. Per caricare i file, connettersi usando il comando az network bastion tunnel .

Questo comando consente di eseguire le operazioni seguenti:

  • Connessione a una macchina virtuale Linux tramite SSH.
  • Eseguire l'autenticazione tramite Microsoft Entra ID
  • Connessione alle sessioni simultanee di macchine virtuali all'interno della rete virtuale.

Per accedere, usare uno degli esempi seguenti. Dopo aver eseguito l'accesso alla macchina virtuale di destinazione, il client nativo nel computer viene aperto con la sessione della macchina virtuale.

Coppia di chiavi SSH

Per accedere alla macchina virtuale usando una coppia di chiavi SSH, usare l'esempio seguente.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Autenticazione Microsoft Entra

Se si accede a una macchina virtuale abilitata per l'accesso a Microsoft Entra, usare l'esempio seguente. Per altre informazioni, vedere MACCHINE virtuali Linux di Azure e ID Microsoft Entra.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"

Nome utente/password

Se si accede alla macchina virtuale usando un nome utente e una password locali, usare l'esempio seguente. Verrà quindi richiesta la password per la macchina virtuale di destinazione.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"

Da SSH a un indirizzo IP della macchina virtuale Linux

È possibile connettersi a un indirizzo IP privato della macchina virtuale anziché all'ID risorsa. Tenere presente che l'autenticazione di Microsoft Entra e le porte e i protocolli personalizzati non sono supportati quando si usa questo tipo di connessione. Per altre informazioni sulle connessioni basate su IP, vedere Connessione a una macchina virtuale - Indirizzo IP.

Usando il az network bastion comando sostituire --target-resource-id con --target-ip-address e l'indirizzo IP specificato per connettersi alla macchina virtuale. L'esempio seguente usa --ssh-key per il metodo di autenticazione.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-addres "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Connessione a una macchina virtuale - Comando tunnel

Il comando az network bastion tunnel è un altro modo per connettersi alle macchine virtuali. Quando si usa questo comando, è possibile eseguire le operazioni seguenti:

  • Connessione dai client nativi in computer locali non Windows. Ad esempio, un computer Linux.
  • Connessione a una macchina virtuale tramite SSH o RDP. Il tunnel bastion non inoltra server Web o host.
  • Usare il client nativo preferito.
  • Caricare i file nella macchina virtuale di destinazione dal computer locale. Il download di file dalla macchina virtuale di destinazione al client locale non è attualmente supportato per questo comando.

Limitazioni :

  • L'accesso con una chiave privata SSH archiviata in Azure Key Vault non è supportato con questa funzionalità. Prima di accedere alla macchina virtuale Linux usando una coppia di chiavi SSH, scaricare la chiave privata in un file nel computer locale.
  • Questa funzionalità non è supportata in Cloud Shell.

Passaggi:

  1. Accedere all'account Azure usando az login. Se si dispone di più sottoscrizioni, è possibile visualizzarle usando az account list e selezionare la sottoscrizione contenente la risorsa Bastion usando az account set --subscription "<subscription ID>".

  2. Aprire il tunnel per la macchina virtuale di destinazione.

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. Connessione alla macchina virtuale di destinazione usando SSH o RDP, il client nativo preferito e la porta del computer locale specificata nel passaggio precedente.

    Ad esempio, è possibile usare il comando seguente se nel computer locale è installato il client OpenSSH:

    ssh <username>@127.0.0.1 -p <LocalMachinePort>
    

Eseguire il tunneling in un indirizzo IP della macchina virtuale

È anche possibile connettersi a un indirizzo IP privato della macchina virtuale anziché all'ID risorsa. L'autenticazione di Microsoft Entra e le porte e i protocolli personalizzati non sono supportati quando si usa questo tipo di connessione. Per altre informazioni sulle connessioni basate su IP, vedere Connessione a una macchina virtuale - Indirizzo IP.

Usando il az network bastion tunnel comando sostituire --target-resource-id con --target-ip-address e l'indirizzo IP specificato per connettersi alla macchina virtuale.

az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"

Tunnel multi-connessione

  1. Aggiungere quanto segue al file $HOME.ssh\config.

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. Aggiungere la connessione tunnel alla connessione tunnel stabilita.

    az network bastion tunnel --name mybastion --resource-group myrg --target-resource-id /subscriptions/<mysubscription>/resourceGroups/myrg/providers/Microsoft.Compute/virtualMachines/myvm --resource-port 22 --port 22
    
  3. Creare un tunnel SSH nel tunnel bastion.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Usare VS Code per connettersi alla connessione tunnel.

Passaggi successivi

Caricare o scaricare file