Connettersi 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. Le connessioni tramite client nativo richiedono lo SKU Bastion Standard o versione successiva.
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 Connettersi alle macchine virtuali per l'elenco completo che mostra le combinazioni di connessioni/funzionalità client disponibili.
- Connettersi a una macchina virtuale Linux usando az network bastion ssh.
- Connettersi a una macchina virtuale Windows usando az network bastion tunnel.
- Connettersi a qualsiasi macchina virtuale usando az network bastion tunnel.
- Trasferire i file nella macchina virtuale di destinazione tramite SSH usando az network bastion tunnel.
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:
- Abilitare l'accesso a Microsoft Entra per una macchina virtuale Windows o una macchina virtuale Linux.
- Configurare la macchina virtuale Windows come aggiunta a Microsoft Entra.
- Configurare la macchina virtuale Windows come aggiunta ibrida a Microsoft Entra.
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.
Account di accesso amministratore macchina virtuale o ruolo 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:
Porti
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 trasferire i file, connettersi usando il comando az network bastion tunnel .
Questo comando consente di eseguire le operazioni seguenti:
- Connettersi a una macchina virtuale Linux usando SSH.
- Eseguire l'autenticazione tramite Microsoft Entra ID
- Connettersi 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. L'autenticazione e i protocolli e le porte e i protocolli personalizzati di Microsoft Entra ID non sono supportati quando si usa questo tipo di connessione. Per altre informazioni sulle connessioni basate su IP, vedere Connettersi 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-address "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Connettersi 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:
- Connettersi da client nativi in computer locali non Windows. Ad esempio, un computer Linux.
- Connettersi a una macchina virtuale usando SSH o RDP. Il tunnel bastion non inoltra server Web o host.
- Usare il client nativo preferito.
- Trasferire i file nella macchina virtuale di destinazione dal computer locale.
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:
Accedere all'account Azure usando
az login
. Se si dispone di più sottoscrizioni, è possibile visualizzarle usandoaz account list
e selezionare la sottoscrizione contenente la risorsa Bastion usandoaz account set --subscription "<subscription ID>"
.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>"
Connettersi 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 e i protocolli e le porte e i protocolli personalizzati di Microsoft Entra ID non sono supportati quando si usa questo tipo di connessione. Per altre informazioni sulle connessioni basate su IP, vedere Connettersi 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
Aggiungere quanto segue al file $HOME.ssh\config.
Host tunneltunnel HostName 127.0.0.1 Port 2222 User mylogin StrictHostKeyChecking=No UserKnownHostsFile=\\.\NUL
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
Creare un tunnel SSH nel tunnel bastion.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Usare VS Code per connettersi alla connessione tunnel.