Condividi tramite


Accesso SSH ai server abilitati per Azure Arc

È possibile abilitare connessioni basate su SSH ai server abilitati per Arc senza richiedere un indirizzo IP pubblico o porte aperte aggiuntive. Questa funzionalità può essere usata in modo interattivo, automatizzato o con strumenti basati su SSH esistenti, espandendo l'impatto degli strumenti di gestione esistenti nei server abilitati per Azure Arc.

Vantaggi

L'accesso SSH ai server abilitati per Arc offre i vantaggi seguenti:

  • Nessuna necessità di indirizzi IP pubblici o porte SSH aperte
  • Accesso ai computer Windows e Linux
  • Capacità di accedere come utente locale o utente di Azure (solo Linux)
  • Supporto per altri strumenti basati su OpenSSH con supporto per i file di configurazione

Prerequisiti

  • Autorizzazioni utente: ruolo proprietario o collaboratore assegnato per il server abilitato per Arc di destinazione.
  • Server con abilitazione di Arc:
    • Versione dell'agente ibrido: 1.31.xxxx o versione successiva
    • Il servizio SSH ("sshd") deve essere abilitato.

Per Linux, eseguire l'installazione openssh-server tramite gestione pacchetti. È possibile verificare se sshd è in esecuzione in Linux eseguendo il comando seguente:

ps -aux | grep sshd

Per Windows, vedi Abilitare OpenSSH. È possibile verificare se ssh è installato ed eseguito con i comandi seguenti:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Check the sshd service is running
Get-Service sshd

Autenticazione Microsoft Entra

Se si usa Microsoft Entra per l'autenticazione, è necessario installare aadsshlogin e aadsshlogin-selinux (in base alle esigenze) nel server abilitato per Arc. Questi pacchetti vengono installati con l'estensione della macchina virtuale AADSSHLoginForLinux.

È anche necessario configurare le assegnazioni di ruolo per la macchina virtuale.You must also configure role assignments for the virtual machine (VM). Per autorizzare l'accesso alla macchina virtuale vengono usati due ruoli di Azure:

  • Accesso amministratore macchina virtuale: gli utenti con questo ruolo assegnato possono accedere a una macchina virtuale di Azure con privilegi di amministratore.
  • Accesso utente macchina virtuale: gli utenti con questo ruolo assegnato possono accedere a una macchina virtuale di Azure con privilegi utente normali.

Un utente di Azure con il ruolo Proprietario o Collaboratore assegnato per una macchina virtuale non dispone automaticamente dei privilegi per l'accesso Di Microsoft Entra alla macchina virtuale tramite SSH. Esiste una separazione intenzionale e controllata tra il set di persone che controllano le macchine virtuali e il set di persone che possono accedere alle macchine virtuali.

Nota

I ruoli Accesso amministratore alle macchine virtuali e Accesso utente alle macchine virtuali usano dataActions e possono essere assegnati al gruppo di gestione, alla sottoscrizione, al gruppo di risorse o all'ambito delle risorse. È consigliabile assegnare i ruoli a livello di gruppo di gestione, sottoscrizione o risorsa e non a livello di singola macchina virtuale. Questa procedura evita il rischio di raggiungere il limite di assegnazioni ruoli di Azure per sottoscrizione.

Disponibilità

L'accesso SSH ai server abilitati per Arc è attualmente supportato in tutte le aree cloud supportate dai server abilitati per Arc.

Abilitare l'accesso SSH ai server abilitati per Arc

Per abilitare l'accesso SSH ai server abilitati per Arc, seguire la procedura descritta in questa sezione.

Registrare il provider di risorse HybridConnectivity

Nota

Si tratta di un'operazione una tantum che deve essere eseguita per ogni sottoscrizione.

Controllare se il provider di risorse HybridConnectivity è stato registrato:

az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState

Se il provider di risorse non è stato registrato, eseguire il comando seguente per registrarlo:

az provider register -n Microsoft.HybridConnectivity

Il completamento di questa operazione può richiedere 2-5 minuti. Assicurarsi che la registrazione sia stata completata prima di procedere al passaggio successivo.

Creare l'endpoint di connettività predefinito

Questo passaggio deve essere completato per ogni server abilitato per Arc. Tuttavia, potrebbe non essere necessario eseguire questi comandi per farlo, perché dovrebbe essere completato automaticamente alla prima connessione.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{"properties": {"type": "default"}}'

Nota

Se si usa l'interfaccia della riga di comando di Azure da PowerShell, è necessario eseguire le seguenti operazioni.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{\"properties\":{\"type\":\"default\"}}'

Convalidare la creazione dell'endpoint:

az rest --method get --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15

Installare lo strumento della riga di comando locale

La funzionalità SSH è disponibile in un'estensione dell'interfaccia della riga di comando di Azure e in un modulo di Azure PowerShell. Installa lo strumento appropriato per il tuo ambiente.

az extension add --name ssh

Abilitare la funzionalità nel server abilitato per Arc

Per usare la funzionalità di connessione SSH, è necessario aggiornare la configurazione del servizio nell'endpoint di connettività nel server abilitato per Arc per consentire la connessione SSH a una porta specifica. È possibile consentire la connessione a una singola porta. Gli strumenti dell'interfaccia della riga di comando tentano di aggiornare la porta consentita in fase di esecuzione, ma la porta può essere configurata manualmente con il comando seguente. Se si usa una porta non predefinita per la connessione SSH, sostituire la porta 22 con la porta desiderata.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body "{\"properties\": {\"serviceName\": \"SSH\", \"port\": 22}}"

Nota

Potrebbe verificarsi un ritardo dopo l'aggiornamento della configurazione del servizio prima di potersi connettere.

Facoltativo: installare l'estensione di accesso di Microsoft Entra

Per usare Microsoft Entra per l'autenticazione nei computer Linux, è necessario installare aadsshlogin e aadsshlogin-selinux (in base alle esigenze) nel server abilitato per Arc. Questi pacchetti vengono installati con l'estensione della macchina virtuale AADSSHLoginForLinux.

Per aggiungere questa estensione nel portale di Azure, passare al cluster, quindi nel menu del servizio, in Impostazioni selezionare Estensioni. Selezionare Aggiungi, quindi selezionare Accesso SSH basato su Azure AD - Azure Arc e completare l'installazione. È anche possibile installare l'estensione in locale tramite una gestione pacchetti eseguendo apt-get install aadsshlogin o il comando seguente:

az connectedmachine extension create --machine-name <arc enabled server name> --resource-group <resourcegroup> --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLogin --type AADSSHLoginForLinux --location <location>

Esempi

Per visualizzare esempi e altri dettagli, vedere la pagina della documentazione dell'interfaccia della riga di comando di Az per az ssh o la pagina della documentazione di Azure PowerShell per Az.Ssh.

Disabilitare SSH ai server abilitati per Arc

Se è necessario rimuovere l'accesso SSH ai server abilitati per Arc, seguire questa procedura.

  1. Rimuovere la porta e la funzionalità SSH dal server abilitato per Arc:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
    
  2. Eliminare l'endpoint di connettività predefinito:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15
    

Passaggi successivi