Accesso SSH ai server abilitati per Azure Arc

SSH per i server abilitati per Arc consente le connessioni basate su SSH per i server abilitati per Arc senza richiedere un indirizzo IP pubblico o porte aperte aggiuntive. Questa funzionalità può essere usata in modo interattivo, automatizzata o usata con strumenti basati su SSH esistenti, permettendo agli strumenti di gestione esistenti di avere un impatto maggiore sui server abilitati per Azure Arc.

Vantaggi chiave

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

  • 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

Per abilitare questa funzionalità, verificare quanto segue:

  • Assicurarsi che il server abilitato per Arc disponga di una versione ibrida dell'agente "1.31.xxxx", o successiva. Eseguire: azcmagent show nel server abilitato per Arc.
  • Verificare che nel server abilitato per Arc sia abilitato il servizio "sshd". Per i computer Linux openssh-server può essere installato tramite un sistema di gestione pacchetti e deve essere abilitato. SSHD deve essere abilitato su Windows.
  • Assicurarsi di avere il ruolo di Proprietario o Collaboratore.

L'autenticazione con le credenziali di Microsoft Entra comporta dei requisiti aggiuntivi:

  • aadsshlogin e aadsshlogin-selinux (in base alle esigenze) devono essere installati nel server abilitato per Arc. Questi pacchetti vengono installati con l'estensione della macchina virtuale Azure AD based SSH Login – Azure Arc.

  • Configurare le assegnazioni di ruolo per la macchina virtuale. Per autorizzare l'accesso alla macchina virtuale vengono usati due ruoli di Azure:

    • Accesso amministratore alle macchine virtuali: gli utenti ai quali è stato assegnato questo ruolo possono accedere a una macchina virtuale di Azure con privilegi di amministratore.
    • Accesso utente alle macchine virtuali: gli utenti ai quali è stato assegnato questo ruolo possono accedere a una macchina virtuale di Azure con i normali privilegi utente.

    Un utente di Azure al quale sia stato assegnato il ruolo di Proprietario o di Collaboratore per una macchina virtuale non dispone automaticamente dei privilegi di accesso a Microsoft Entra per la macchina virtuale su 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 supportate da questi server.

Introduzione

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 (RP) è stato registrato:

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

Se RP non è stato registrato, eseguire le operazioni seguenti:

az provider register -n Microsoft.HybridConnectivity

Il completamento di questa operazione può richiedere 2-5 minuti. Prima di procedere, verificare che RP sia stato registrato.

Creare l'endpoint di connettività predefinito

Nota

Il passaggio seguente non dovrà essere eseguito per la maggior parte degli utenti, perché dovrebbe essere completato automaticamente alla prima connessione. Questo passaggio deve essere completato per ogni server abilitato per Arc.

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 privato:

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 riga di comando locale

Questa funzionalità è attualmente inserita in un pacchetto in un'estensione dell'interfaccia della riga di comando di Azure e in un modulo di Azure PowerShell.

az extension add --name ssh

Nota

La versione dell'estensione dell'interfaccia della riga di comando di Azure deve essere successiva alla versione 2.0.0.

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 al fine di 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 runtime, tuttavia è possibile configurare manualmente la porta nel modo seguente:

Nota

Si potrebbe verificare un ritardo dopo l'aggiornamento della configurazione del servizio prima di potersi connettere.

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}}"

Se si usa una porta non predefinita per la connessione SSH, sostituire la porta 22 con la porta specificata nel comando precedente.

Facoltativo: installare l'estensione di accesso di Azure AD

L'estensione Azure AD based SSH Login – Azure Arc della macchina virtuale può essere aggiunta dal menu delle estensioni del server Arc. L'estensione di accesso di Azure AD può essere installata anche in locale tramite un sistema di gestione pacchetti tramite: 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 gli esempi, consultare la pagina della documentazione dell'interfaccia della riga di comando di Azure per az ssh o la pagina della documentazione di Azure PowerShell per Az.Ssh.

Passaggi successivi