Come usare le chiavi SSH con Windows in AzureHow to use SSH keys with Windows on Azure

Questo articolo descrive i modi per generare e usare chiavi Secure Shell (SSH) in un computer Windows per creare e connettersi a una macchina virtuale (VM) Linux in Azure.This article introduces ways to generate and use secure shell (SSH) keys on a Windows computer to create and connect to a Linux virtual machine (VM) in Azure. Per usare le chiavi SSH da un client Linux o macOS, vedere il materiale sussidiario rapido o dettagliato.To use SSH keys from a Linux or macOS client, see the quick or detailed guidance.

Panoramica di SSH e delle chiaviOverview of SSH and keys

SSH è un protocollo per connessioni crittografate che consente accessi protetti su connessioni non sicure.SSH is an encrypted connection protocol that allows secure sign-ins over unsecured connections. È il protocollo di connessione predefinito per le VM Linux ospitate in Azure.It is the default connection protocol for Linux VMs hosted in Azure. Sebbene SSH stessa fornisca una connessione crittografata, se si usano password con le connessioni SSH la VM rimane vulnerabile agli attacchi di forza bruta o di individuazione password.Although SSH itself provides an encrypted connection, using passwords with SSH connections still leaves the VM vulnerable to brute-force attacks or guessing of passwords. Un metodo più sicuro e preferito per la connessione a una VM mediante SSH è tramite una coppia di chiavi pubblica e privata, dette anche chiavi SSH.A more secure and preferred method of connecting to a VM using SSH is by using a public-private key pair, also known as SSH keys.

  • La chiave pubblica si trova nella VM Linux o in qualsiasi altro servizio che si desidera usare con la crittografia a chiave pubblica.The public key is placed on your Linux VM, or any other service that you wish to use with public-key cryptography.

  • La chiave privata è quella che si presenta alla VM Linux quando ci si connette a SSH, per verificare la propria identità.The private key is what you present to your Linux VM when you make an SSH connection, to verify your identity. Sulla chiave privata è necessario mantenere la massima riservatezza,Protect this private key. evitando di condividerla.Do not share it.

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.Depending on your organization's security policies, you can reuse a single public-private key pair to access multiple Azure VMs and services. Non è necessaria una coppia di chiavi separata per ogni VM o servizio a cui si desidera accedere.You do not need a separate pair of keys for each VM or service you wish to access.

La chiave pubblica può essere condivisa con chiunque, ma la chiave privata appartiene solo all'utente o all'infrastruttura di sicurezza locale.Your public key can be shared with anyone; but only you (or your local security infrastructure) possess your private key.

Formati di chiave SSH supportatiSupported SSH key formats

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.Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. Altri formati di chiave, ad esempio ED25519 ed ECDSA, non sono supportati.Other key formats such as ED25519 and ECDSA are not supported.

Pacchetti Windows e client SSHWindows packages and SSH clients

Per la connessione a VM Linux e la loro gestione in Azure si usa un client SSH.You connect to and manage Linux VMs in Azure using an SSH client. I computer Linux o macOS hanno di solito una suite di comandi SSH per generare e gestire le chiavi SSH e stabilire connessioni SSH.Computers running Linux or macOS usually have a suite of SSH commands to generate and manage SSH keys and to make SSH connections.

Nei computer Windows non sempre sono installati comandi SSH simili.Windows computers do not always have comparable SSH commands installed. Le versioni di Windows 10 che includono il sottosistema Windows per Linux consentono di eseguire e di accedere a utilità come un client SSH in modo nativo dall'interno della shell Bash.Windows 10 versions that include the Windows Subsystem for Linux allow you to run and access utilities such as an SSH client natively within a Bash shell.

Se si vuole usare una soluzione diversa da Bash per Windows, comuni client SSH Windows che è possibile installare localmente sono disponibili nei pacchetti seguenti:If you wish to use something other than Bash for Windows, common Windows SSH clients you can install locally are included in the following packages:

Un'altra possibilità è usare le utilità SSH disponibili in Bash in Azure Cloud Shell.Another option is to use the SSH utilities available in Bash in the Azure Cloud Shell.

Creare una coppia di chiavi SSHCreate an SSH key pair

Questa sezione illustra due opzioni per creare una coppia di chiavi SSH in Windows.This section shows you two options to create an SSH key pair on Windows.

Creare chiavi SSH con ssh-keygenCreate SSH keys with ssh-keygen

Se è possibile eseguire una shell dei comandi, ad esempio Bash per Windows o GitBash (o Bash in Azure Cloud Shell), creare una coppia di chiavi SSH usando il comando ssh-keygen.If you can run a command shell such as Bash for Windows or GitBash (or Bash in Azure Cloud Shell), create an SSH key pair using the ssh-keygen command. Digitare il comando seguente e rispondere ai prompt.Type the following command, and answer the prompts. Se nel percorso corrente è presente una coppia di chiavi SSH, questi file vengono sovrascritti.If an SSH key pair exists in the current location, those files are overwritten.

ssh-keygen -t rsa -b 2048

Per e altre informazioni, vedere le procedure rapida o dettagliata per creare le chiavi con ssh-keygen.For more background and information, see the quick or detailed steps to create the keys with ssh-keygen.

Creare chiavi SSH con PuTTYgenCreate SSH keys with PuTTYgen

Se si preferisce usare uno strumento basato su interfaccia utente grafica per creare le chiavi SSH, è possibile usare il generatore di chiavi PuTTYgen, incluso nel pacchetto di download di PuTTY.If you prefer to use a GUI-based tool to create SSH keys, you can use the PuTTYgen key generator, included with the PuTTY download package.

Per creare una coppia di chiavi SSH RSA con PuTTYgen:To create an SSH RSA key pair with PuTTYgen:

  1. Avviare PuTTYgen.Start PuTTYgen.

  2. Fare clic su Genera.Click Generate. Per impostazione predefinita PuTTYgen genera una chiave SSH-2 RSA a 2048 bit.By default PuTTYgen generates a 2048-bit SSH-2 RSA key.

  3. Posizionare il cursore del mouse sull'area vuota per generare casualità per la chiave.Mouse over the blank area to generate some randomness for the key.

  4. Dopo la generazione della chiave pubblica, è possibile facoltativamente immettere e confermare una passphrase.After the public key is generated, optionally enter and confirm a passphrase. La passphrase sarà chiesta in fase di autenticazione per la VM con la chiave SSH.You will be prompted for the passphrase when you authenticate to the VM with your SSH key. Quando non si imposta una passphrase, se un utente ottiene la chiave privata potrà accedere a qualsiasi VM o servizio che usa tale chiave.Without a passphrase, if someone obtains your private key, they can log in to any VM or service that uses that key. Creare una passphrase è altamente consigliato.We recommend you create a passphrase. Tuttavia, se si dimentica la passphrase, non è possibile recuperarla.However, if you forget the passphrase, there is no way to recover it.

  5. La chiave pubblica è visualizzata nella parte superiore della finestra.The public key is displayed at the top of the window. È possibile copiare e incollare questa chiave pubblica di una sola riga nel portale di Azure o in un modello di Azure Resource Manager quando si crea una VM Linux.You copy and paste this one-line format public key into the Azure portal or an Azure Resource Manager template when you create a Linux VM. È inoltre possibile fare clic su Salva chiave pubblica per salvare una copia nel computer:You can also click Save public key to save a copy to your computer:

    Salvare un file di chiave pubblica PuTTY

  6. Facoltativamente, per salvare la chiave privata nel formato chiave privata di PuTTy (file con estensione ppk), fare clic su Salva la chiave privata.Optionally, to save the private key in PuTTy private key format (.ppk file), click Save private key. Il file con estensione ppk è necessario se si vuole usare PuTTY in un secondo momento per stabilire una connessione SSH alla VM.You need the .ppk file of you want to use PuTTY later to make an SSH connection to the VM.

    Salvare il file della chiave privata PuTTY

    Se si vuole salvare la chiave privata nel formato OpenSSH, il formato di chiave privata utilizzato da molti client SSH, fare clic su Conversioni > Esporta chiave OpenSSH.If you want to save the private key in the OpenSSH format, the private key format used by many SSH clients, click Conversions > Export OpenSSH key.

Fornire la chiave SSH pubblica quando si distribuisce una VMProvide SSH public key when deploying a VM

Per creare una VM Linux che usa chiavi SSH per l'autenticazione, fornire la chiave SSH pubblica quando si crea la VM tramite il portale di Azure o altri metodi.To create a Linux VM that uses SSH keys for authentication, provide your SSH public key when creating the VM using the Azure portal or other methods.

L'esempio seguente illustra come copiare e incollare questa chiave pubblica nel portale di Azure quando si crea una VM Linux.The following example shows how you would copy and paste this public key into the Azure portal when you create a Linux VM. Quindi la chiave pubblica viene generalmente archiviata in ~/.ssh/authorized_keys nella nuova VM.The public key is typically then stored in ~/.ssh/authorized_keys on your new VM.

Usare la chiave pubblica quando si crea una VM nel portale di Azure

Connettersi alla macchina virtualeConnect to your VM

Un modo per stabilire una connessione SSH alla VM Linux da Windows è usare un client SSH.One way to make an SSH connection to your Linux VM from Windows is to use an SSH client. Questo è il metodo preferito se un client SSH è installato nel sistema Windows o se si usano strumenti SSH in Bash in Azure Cloud Shell.This is the preferred method if you have an SSH client installed on your Windows system, or you use SSH tools in Bash in Azure Cloud Shell. Se si preferisce uno strumento basato su interfaccia utente grafica, è possibile stabilire la connessione con PuTTY.If you prefer a GUI-based tool, you can connect with PuTTY.

Usare un client SSHUse an SSH client

Con la chiave pubblica distribuita nella VM di Azure e la chiave privata nel sistema locale, stabilire una connessione SSH alla VM usando l'indirizzo IP o il nome DNS della VM.With the public key deployed on your Azure VM, and the private key on your local system, SSH to your VM using the IP address or DNS name of your VM. Sostituire azureuser e myvm.westus.cloudapp.azure.com nel comando seguente con il nome utente dell'amministratore e il nome di dominio completo (o indirizzo IP):Replace azureuser and myvm.westus.cloudapp.azure.com in the following command with the administrator user name and the fully qualified domain name (or IP address):

ssh azureuser@myvm.westus.cloudapp.azure.com

Se è stata configurata una passphrase durante la creazione della coppia di chiavi, immettere la passphrase quando viene richiesta durante la procedura di accesso.If you configured a passphrase when you created your key pair, enter the passphrase when prompted during the login process.

Connettersi con PuTTYConnect with PuTTY

Se è stato installato il pacchetto di download di PuTTY e in precedenza è stata generata una chiave privata PuTTY (file con estensione ppk), è possibile connettersi alla VM Linux con PuTTY.If you installed the PuTTY download package and previously generated a PuTTY private key (.ppk file), you can connect to the Linux VM with PuTTY.

  1. Avviare PuTTY.Start PuTTy.

  2. Specificare il nome host o l'indirizzo IP della VM dal portale di Azure:Fill in the host name or IP address of your VM from the Azure portal:

    Aprire una nuova connessione PuTTY

  3. Prima di selezionare Apri, fare clic sulla scheda Connessione > SSH > Aut. Individuare e selezionare la chiave privata PuTTY (file con estensione ppk):Before selecting Open, click Connection > SSH > Auth tab. Browse to and select your PuTTY private key (.ppk file):

    Selezionare la chiave privata PuTTY per l'autenticazione

  4. Fare clic su Apri per connettersi alla VM.Click Open to connect to your VM.

Passaggi successiviNext steps