Share via


Come connettersi usando Secure Shell (SSH) e accedere a una macchina virtuale di Azure che esegue Windows

Si applica a: ✔️ Set di scalabilità flessibili di macchine virtuali ✔️ Windows

Il progetto OpenSSH Win32 rende la connettività remota con Secure Shell onnipresente fornendo supporto nativo in Windows. La funzionalità è disponibile in Windows Server versione 2019 e successive e può essere aggiunta alle versioni precedenti di Windows usando un'estensione macchina virtuale .The capability is provided in Windows Server version 2019 and later, and can be added to older versions of Windows using a virtual machine (VM) extension.

Gli esempi seguenti usano le variabili. È possibile impostare le variabili nell'ambiente come indicato di seguito.

Shell Esempio
Bash/ZSH myResourceGroup='resGroup10'
PowerShell $myResourceGroup='resGroup10'

Abilitare SSH

Prima di tutto, è necessario abilitare SSH nel computer Windows.

Distribuire l'estensione SSH per Windows. L'estensione fornisce un'installazione automatica della soluzione OpenSSH Win32, simile all'abilitazione della funzionalità nelle versioni più recenti di Windows. Usare gli esempi seguenti per distribuire l'estensione.

az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0

Aprire la porta TCP

Verificare che la porta appropriata (per impostazione predefinita, TCP 22) sia aperta per consentire la connettività alla macchina virtuale.

az network nsg rule create -g $myResourceGroup --nsg-name $myNSG -n allow-SSH --priority 1000 --source-address-prefixes 208.130.28.4/32 --destination-port-ranges 22 --protocol TCP
  • 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. 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 scheda Panoramica verificare lo stato della macchina virtuale in esecuzione nella sezione Informazioni di base. Per avviare la macchina virtuale, selezionare Avvia nella parte superiore della pagina.

Authentication

È possibile eseguire l'autenticazione nei computer Windows usando il nome utente e la password o le chiavi SSH. Azure non supporta il provisioning automatico delle chiavi pubbliche nei computer Windows, ma è possibile copiare la chiave usando l'estensione RunCommand.

Panoramica di SSH e delle chiavi

SSH è un protocollo di connessione crittografato che fornisce accessi sicuri su connessioni non protette. Sebbene SSH fornisca una connessione crittografata, l'uso di password con connessioni SSH lascia la macchina virtuale vulnerabile agli attacchi di forza bruta. È consigliabile connettersi a una macchina virtuale tramite SSH usando una coppia di chiavi pubblica-privata, nota anche come chiavi SSH.

  • La chiave pubblica viene inserita nella macchina virtuale.

  • La chiave privata rimane nel sistema locale. Sulla chiave privata è necessario mantenere la massima riservatezza, evitando di condividerla.

Quando si usa un client SSH per connettersi alla macchina virtuale (con la chiave pubblica), la macchina virtuale remota testa il client per assicurarsi che abbia la chiave privata corretta. In caso positivo, al client viene concesso il diritto di accesso alla macchina virtuale.

A seconda dei criteri di sicurezza dell'organizzazione, è possibile riutilizzare una singola coppia di chiavi pubblica e privata per accedere a più VM e servizi di Azure. Non è necessaria una coppia di chiavi separata per ogni VM o servizio a cui si desidera accedere.

La chiave pubblica può essere condivisa con chiunque, ma solo l'utente (o l'infrastruttura di sicurezza locale) deve avere accesso alla chiave privata.

Formati di chiave SSH supportati

Attualmente Azure supporta il protocollo SSH 2 (SSH-2) e le coppie di chiavi pubblica e privata basate su RSA con una lunghezza minima di 2.048 bit. Altri formati di chiave, ad esempio ED25519 ed ECDSA, non sono supportati.

Copiare una chiave pubblica usando l'estensione RunCommand.

L'estensione RunCommand offre una soluzione semplice per copiare una chiave pubblica nei computer Windows e assicurarsi che il file disponga delle autorizzazioni corrette.

az vm run-command invoke -g $myResourceGroup -n $myVM --command-id RunPowerShellScript --scripts "MYPUBLICKEY | Add-Content 'C:\ProgramData\ssh\administrators_authorized_keys' -Encoding UTF8;icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F'"

Connessione con l'interfaccia della riga di comando di Az

Connessione ai computer Windows usando Az SSH i comandi.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername

È anche possibile creare un tunnel di rete per porte TCP specifiche tramite la connessione SSH. Un buon caso d'uso per questo è Desktop remoto che per impostazione predefinita è la porta 3389.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389

Connessione da portale di Azure

  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.

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.