Come connettersi usando Secure Shell (SSH) e accedere a una macchina virtuale di Azure che esegue Windows
Si applica a: ✔️ macchine virtuali di Windows ✔️ set di scalabilità flessibili
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.
Autenticazione
È 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 la chiave privata appartiene solo all'utente o all'infrastruttura di sicurezza locale.
Formati di chiave SSH supportati
Azure supporta attualmente i tipi di chiave seguenti:
- PROTOCOLLO SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) con una lunghezza minima di 2048 bit
- ED25519 chiavi con una lunghezza fissa di 256 bit
Altri formati chiave, ad esempio Elliptic-curve Diffie–Hellman (ECDH) e Elliptic Curve Digital Signature Algorithm (ECDSA) non sono attualmente 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'"
Connettersi con l'interfaccia della riga di comando di Az
Connettersi 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
Connettersi da portale di Azure
- Passare al portale di Azure per connettersi a una macchina virtuale. Cercare e selezionare Macchine virtuali.
- Selezionare la macchina virtuale dall'elenco.
- Selezionare Connetti dal menu a sinistra.
- 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.